Eri*_*ric 5 objective-c interface-builder uitableview ios autolayout
我有一个使用自动布局的UITableView.我有多个类型的细胞,但现在让我们用最简单的是,一个只有一个UILabel.
在tableView:heightForRowAtIndexPath:我有以下代码:
[self configureCell:self.detailsCell forRowAtIndexPath:indexPath];
[self.detailsCell layoutIfNeeded];
CGSize size = [self.detailsCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height + 1;
Run Code Online (Sandbox Code Playgroud)
反过来打电话
- (void)configureCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
cell.detailsLabel.text = self.data.myText;
cell.detailsLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
// [cell.detailsLabel sizeToFit]; <- I tried this, but didn't help
}
Run Code Online (Sandbox Code Playgroud)

我最终得到了这个:

绿色矩形是实际的单元格.紫色矩形是UILabel.我不想要顶部和底部的紫色填充/边距.我怎么能摆脱它?
你必须要小心" 限制利润: "
比较这两个图像:
和

所以在添加新约束的同时取消选择"consur to margin",应该解决你的填充/边距问题:-)
如果您愿意,可以使用"编辑器/画布/显示布局矩形"来显示这些边距.没有布局矩形的视图:
和布局矩形设置显示(这说明您的问题非常好)

您可以向 UILabel 添加水平居中。然后将“顶部空间到超级视图”的关系设置为“大于或等于”,并以同样的方式设置底部空间。构建并运行,可以看到UILabel的动态高度是根据UILabel的内容变化的。
| 归档时间: |
|
| 查看次数: |
5123 次 |
| 最近记录: |