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

标签 ios uitableview autolayout uicollectionview

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

如果我修改它们的 intrinsicContentSize 方法以返回 UITableViewself.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.

由于 UITableViewUICollectionView 都是 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/

相关文章:

android - React-Native:如何缩放字体大小以支持 Android 和 iOS 中的许多不同分辨率和屏幕?

ios - iOS 中的动态库和动态框架有什么区别?

ios - 自定义 UITableViewController 问题

ios - 如何解决官方 iOS 应用程序开发教程中的自动布局问题?

ios - 为什么这个约束不起作用?

ios - 如何以编程方式向 CALayer 添加约束

ios - Swift 3 遍历类数组

iOS:实现(扫雷风格)按钮网格的最佳方法

ios - UITableViewCell内存中的异步图像加载问题

ios - 在 TableViewCell 中保持 UISwitch 的状态 : Swift