我想将 UITableView
和 UICollectionView
与自动布局一起使用。但是,由于它们没有 intrinsicContentSize
方法,因此很难为所有 View 设置约束。
如果我修改它们的 intrinsicContentSize
方法以返回 UITableView
和 self.collectionViewLayout.collectionViewContentSize 的
用于 contentSize
是否可以UICollectionView
?
最佳答案
关于 intrinsicContentSize
documentation指出:
Overriding this method allows a custom view to communicate to the layout system what size it would like to be based on its content.
由于 UITableView
和 UICollectionView
都是 UIView
的子类,因此该方法也适用于它们。我在文档中没有看到任何关于与他们一起使用它的警告。
您也可以查看这个很棒的 tutorial关于自动布局,尤其是内部内容大小。注意以下几点:
To implement an intrinsic content size in a custom view, you have to do two things: override intrinsicContentSize to return the appropriate size for the content, and call invalidateIntrinsicContentSize whenever something changes which affects the intrinsic content size.
因此,当您的 TableView 重新加载数据、插入新行等时,不要忘记调用 invalidateIntrinsicContentSize
。这同样适用于 UICollectionView
。
希望这对您有所帮助。
关于ios - 修改 `intrinsicContentSize`和 `UITableView`的 `UICollectionView`方法可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470582/