【问题标题】:How to autosize the UITableViewCell to fill all devices by Autolayout xib?如何通过 Autolayout xib 自动调整 UITableViewCell 以填充所有设备?
【发布时间】:2017-01-29 11:32:05
【问题描述】:

在图片中,它显示Autolayout只能给UITableViewCell一个固定的尺寸(如图片中的132*59)。如果我想在 iphone 6s 上拥有一个大小为 375*667 并且在 iphone 6s plus 上大小为 414*736 的单元格。这意味着单元格的大小是整个屏幕。我该怎么办?谢谢!

【问题讨论】:

    标签: ios swift uitableview autolayout xib


    【解决方案1】:

    UITableViewCell 将获得 UITableView 的宽度,因此您可以将 UITableView 的锚点附加到其父视图:

    [tableView.leftAnchor constraintEqualToAnchor: tableViewSuperview.leftAnchor].active = YES;
    [tableView.rightAnchor constraintEqualToAnchor: tableViewSuperview.rightAnchor].active = YES;
    

    或者只是通过故事板附加它。

    您可以从委托方法返回的单元格高度:

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
    

    或者也将它设置在情节提要中(它不太适合您的需要,因为您希望将高度设置为等于您的视图高度)

    如果 UITableView superview 没有设备大小,你可以从

    获取屏幕大小
    [UIApplication sharedApplication].keyWindow.bounds.size
    

    【讨论】:

    • 那么,没有纯粹的自动布局方式来解决这个问题吗?我们必须在这里使用代码?
    • 您可以使用自动调整大小来确定单元格的高度,但我认为这不是更好的方法。纯自动布局是什么意思?您必须以某种方式确定内容的高度,才能使用其固有大小。
    猜你喜欢
    • 2017-03-26
    • 1970-01-01
    • 2011-11-28
    • 2015-05-17
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多