我想将UITableView
和UICollectionView
与autolayout一起使用。但是,由于它们没有intrinsicContentSize
方法,因此很难为所有视图设置约束。
如果我修改它们的intrinsicContentSize
方法以返回contentSize
的{{1}}和UITableView
的{{1}},是否可以?
答案 0 :(得分:3)
关于intrinsicContentSize
,documentation表示:
重写此方法允许自定义视图与之通信 布局系统基于其内容的大小。
由于UITableView
和UICollectionView
都是UIView
的子类,因此此方法也必须适用于它们。我在文档中没有看到任何与它们一起使用的注意事项。
您还可以查看有关自动布局和特别是内在内容大小的精彩tutorial。请注意以下事项:
要在自定义视图中实现内在内容大小,您必须这样做 做两件事:覆盖intrinsicContentSize以返回相应的内容 内容的大小,并且无论何时调用invalidateIntrinsicContentSize 一些影响内在内容大小的变化。
因此,当您的表视图重新加载数据,插入新行等时,不要忘记调用invalidateIntrinsicContentSize
。这同样适用于UICollectionView
。
希望这有帮助。