【问题标题】:Set UITableView's rowHeight to UITableViewAutomaticDimension in storyboard?在情节提要中将 UITableView 的 rowHeight 设置为 UITableViewAutomaticDimension?
【发布时间】:2014-11-11 08:17:30
【问题描述】:

在 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 出来了,我如何在 storyboard 中设置这个值,而无需添加

self.tableView.rowHeight = UITableViewAutomaticDimension;

在我的viewDidLoad?

【问题讨论】:

    标签: ios objective-c uitableview storyboard autolayout


    【解决方案1】:

    Xcode 11+

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

    release notes 中所述:

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


    预 Xcode 11

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

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

    最后,请注意目前无法在情节提要的任何位置设置estimatedRowHeight,如果您不以编程方式设置它,它将默认为0(如果你知道怎么做,欢迎编辑)


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

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

    将行高设置为44,这会产生:

    -1.000000

    -1.000000

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

    -1.000000

    45.00000

    【讨论】:

    • 44 变成UITableViewAutomaticDimension 是一个冒险的决定,会破坏一些应用程序。因为我怀疑,所以只是在寻找确认,谢谢。
    • @DavideDeFranceschi 我同意。如果这在 Xcode 6.1 中没有改变,我可能会在有时间的时候提交雷达。
    猜你喜欢
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多