swift - ViewController 中两个 UIView 的动态高度
问题描述
我有以下 ViewController,里面有 3 个 UIView 和内容。红线是我的限制。
黑色的总是有一个固定的高度。
红色的 UIView 里面有一个 CollectionView,它会根据它的项目而增长。
绿色是一个 UITableView,它应该缩小,这取决于红色 UICollectionView 的大小。
我试图将红色(UICollectionView)的高度约束设置为大于或等于,将绿色(UITableView)的高度设置为小于或等于,但 Swift 告诉我设置 ax 或高度值。
在我的 ViewController 中获取两个动态视图的正确方法是什么?
解决方案
为 CollectionView Height创建NSLayoutConstraint,然后在cellForItemAt函数上设置高度
var collHeight:NSLayoutConstraint? //In class scope
将 CollectionView 高度锚分配给 collHeight
collHeight = collectionView.heightAnchor.constraint(equalToConstant: 0)
collHeight!.isActive = true
然后在cellForItemAt函数上设置高度
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
collHeight.constant = collectionView.contentSize.height
}
它将根据项目数扩大collectionview高度的大小。接下来将tableview顶部锚点设置为collectionview底部锚点
推荐阅读
- java - 当文件的名称可以采用不同的编码时,如何查找文件?
- reactjs - 缓存问题:CDN 后面的 React + REST 服务器
- ios - 如何以编程方式快速重新采样音频文件?
- mysql - CloudStack 无法创建与数据库服务器的连接
- youtube-data-api - 如何从频道名称中找到频道信息?
- delphi - 如何获取包含 SHIFTSTATE 的快捷键的字符串表示形式?
- c# - 无法使用 Selenium 登录页面,但手动登录有效
- macos - 带有 Docker 的 ElasticSearch 7.10.1 在 Mac 下报告 java.net.UnknownHostException 但在 Linux 上不报告
- r - r lang for r 3.3 的问题
- javascript - 子组件的 NgClass 未触发