我们如何在 uitableview 单元格中设置标签约束?

Posted

技术标签:

【中文标题】我们如何在 uitableview 单元格中设置标签约束?【英文标题】:how we set label Constraints in uitableview cell? 【发布时间】:2017-09-14 07:06:02 【问题描述】:

我想在表格视图单元格中设置标签约束。 当我设置标签约束并在设备上运行时,自动布局不适用于 iPhone 5,6 和 iPhone 7 plus 等不同设备。

Here is the screenshot

如何设置自动布局约束以使布局适用于所有设备?

谢谢!

【问题讨论】:

不工作是什么意思?放一些尝试过的代码和结果 对所有约束(前导、尾随、顶部、底部)使用比例值 当应用程序在小设备上运行时,uilabel 宽度不会根据屏幕设置。 【参考方案1】:

试试这个 -

将标签拖到单元格中。 假设您希望从标签的每一侧有 10 个像素的边距。为所有(顶部、底部、前导、尾随)设置一个常数 10,然后单击添加 4 个约束。如下图所示

现在,如果您只有标签宽度的问题,请执行以下操作 -

viewWillAppear方法中

tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 50.0;

然后使用下面的方法 -

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

     return  UITableViewAutomaticDimension;

你的问题现在应该解决了。

【讨论】:

【参考方案2】:

您必须为单元格提供估计的行高或将其设置为自动。

例子:-

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

或者像这样:-

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 

 return 240

【讨论】:

不是高度问题,当应用程序在小型设备上运行时,标签宽度未根据屏幕设置 您必须为 tableView 提供相应视图的约束。【参考方案3】:

你需要设置以下参数

tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 140.0; //some values according to the your requirement 

【讨论】:

以上是关于我们如何在 uitableview 单元格中设置标签约束?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableView 中设置动态单元格分隔线? [复制]

如何在 UITableView 样式分组中设置单元格的角半径?

当所有单元格都是静态的时将单元格添加到 UITableView(在情节提要中设计)

如何阻止 UITableView 单元格在视图更改时消失

如何在单元格中设置 UILabel 相对于图像的位置

自行调整特定 UITableView 单元的大小