我们如何在 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 样式分组中设置单元格的角半径?