我创建了自定义集合视图单元格。它有一个的UILabel,的UIView,的UIButton然后UITextView的。使用自动布局设置自定义集合视图单元格的动态高度
要求为:
- UILabel的文字大小可以是任何东西。基于它的内容尺寸标签必须重新尺寸。它工作正常。
- 可以将任意数量的视图添加到UIView。基于这个UIView必须是重新大小。
- UIButton只是一个普通的按钮。当我们点击它时,下面的TextView会切换。
我申请的限制是:
我创建了自定义集合视图单元格。它有一个的UILabel,的UIView,的UIButton然后UITextView的。使用自动布局设置自定义集合视图单元格的动态高度
要求为:
我申请的限制是:
使用这种方法计算大小适合于你并返回。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let Labell : UILabel = UILabel()
Labell.text = self.items[indexPath.item]
let labelTextHeight = Labell.intrinsicContentSize.height
//calculate size for UIView, UIButton, TextView and then add it
return CGSize(width: /*fix width*/, height: labelTextHeigh + /*your UIView height and other height*/)
}
不要忘记延长您viewController
从UICollectionViewDelegateFlowLayout
请告诉我如何计算大小的@Rock Balbao –
@Rock Balbao,你已经分配了uilabel的文本。 –
我正在创建一个临时标签,它将文本作为label.text并计算其高度,从而以这种方式我将获得将实时使用的标签大小。我可以设置集合视图的高度和标签的高度+您希望保留在单元格之间的一些空间。 @RahulPatel –
集合视图将单元尺寸是基于它的内容? – rishu1992