在Xcode 6中为iOS 8创建应用程序时,如何将UITableView的rowHeight设置为UITableViewAutomaticDimension

WWDC 2014 Session 226 "What’s New in Table and Collection Views"中,发言人说UITableViewAutomaticDimension是以编程方式创建的表视图rowHeight的新默认值。但是,他还提到在会话时,从xib / storyboard加载的表视图不是这种情况。

现在Xcode 6 GM已经发布,如何在情节提要中设置此值,而无需添加

self.tableView.rowHeight = UITableViewAutomaticDimension;

在我的viewDidLoad中?

最佳答案

Xcode 11以上

从Xcode 11开始,Interface Builder现在在“行高”输入附近具有一个“自动”复选框。

release notes中所述:

现在,UITableView中的单元格可以使用画布中的“自动布局”约束视图自动调整大小。要选择现有表格视图的行为,请在“大小”检查器中为表格视图估计的项目大小启用“自动”,为单元格高度启用“自动”。 (35735970)

ios - 在 Storyboard上将UITableView的rowHeight设置为UITableViewAutomaticDimension?-LMLPHP

Xcode 11之前的版本

在情节提要中测试了不同的值之后,解决方案就是将默认的44pt值保留在“行高”中:

这可能意味着您无法在情节提要中设置44pt的固定高度单元格。您必须以编程方式在viewDidLoad或其他位置进行设置。

最后,请注意,当前无法在情节提要中的任何位置设置estimatedRowHeight,并且,如果您未通过编程方式进行设置,则默认为0。 (如果您知道如何做,欢迎编辑)

您可以通过记录44pt中的值来自己测试viewDidLoad行为:

NSLog(@"%f", UITableViewAutomaticDimension);
NSLog(@"%f", self.tableView.rowHeight);

将“行高”设置为44时,将产生:

-1.000000

-1.000000

将“行高”设置为另一个值(此处为45pt):

-1.000000

45.00000

07-27 18:28