可以修改`UITableView`和`UICollectionView`的`intrinsicContentSize`方法吗?

时间:2016-04-07 08:23:06

标签: ios uitableview autolayout uicollectionview

我想将UITableViewUICollectionView与autolayout一起使用。但是,由于它们没有intrinsicContentSize方法,因此很难为所有视图设置约束。

如果我修改它们的intrinsicContentSize方法以返回contentSize的{​​{1}}和UITableView的{​​{1}},是否可以?

1 个答案:

答案 0 :(得分:3)

关于intrinsicContentSizedocumentation表示:

  

重写此方法允许自定义视图与之通信   布局系统基于其内容的大小。

由于UITableViewUICollectionView都是UIView的子类,因此此方法也必须适用于它们。我在文档中没有看到任何与它们一起使用的注意事项。

您还可以查看有关自动布局和特别是内在内容大小的精彩tutorial。请注意以下事项:

  

要在自定义视图中实现内在内容大小,您必须这样做   做两件事:覆盖intrinsicContentSize以返回相应的内容   内容的大小,并且无论何时调用invalidateIntrinsicContentSize   一些影响内在内容大小的变化。

因此,当您的表视图重新加载数据,插入新行等时,不要忘记调用invalidateIntrinsicContentSize。这同样适用于UICollectionView

希望这有帮助。