我有一个UITableViewController
,它会显示各种自定义UITableViewCell
子类。其中一些类具有动态内容,可能会改变单元格的大小。
部分动态内容是通过asynchronous operations
生成的,例如下载图片,数据等。然后结果用于确定单元格的正确大小。
当单元格更新其布局时,我收到了很多约束警告。它似乎打破了一些UITableView
约束(即在数据下载之前单元格的高度为100,然后更新为250)。
我发现修复这些警告的唯一方法是向delegate
和{{1} {{1}中触发的单元格类添加UITableViewController
方法}};
这是有问题的,因为它最终会重新触发一些单元的异步操作等。
我的问题是,如果您的自定义[tableView reloadData]
类具有动态内容,可以在表最初加载并显示单元格后更改单元格的大小,那么最佳方法是什么?
样本单元格布局:
的UILabel
的UIImage
UICollectionView 仅在为当前用户找到对象时显示。它可以显示对象数据的1-3行(从而改变单元格的高度),或者如果没有为用户找到对象,则会隐藏。
< / LI>的UIButton
以下是示例警告:
UITableViewCell
答案 0 :(得分:1)
事实证明,在UITableViewCell中使用UIButton时会出现某种错误。
更改UIButton垂直间距的约束优先级可修复错误:
<强>当时:强>
[NSLayoutConstraint activateConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@&#34; V:| [label(32)] - [imageView(100)] - 16- [button(buttonHeight)] -8 - |&#34; options:NSLayoutFormatAlignAllCenterX metrics:metrics views:views]];
立即强>
[NSLayoutConstraint activateConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@&#34; V:| [label(32)] - [imageView(100)] - 16- [button(buttonHeight)] -8 @ 999- < /强> |&#34; options:NSLayoutFormatAlignAllCenterX metrics:metrics views:views]];
答案 1 :(得分:0)
您必须设置
when: '"lxc.group = mdblxc" in item.item.container_config'
之后,一切都与约束相关