在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)
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