我有一个包含图像视图和标签的UICollectionViewCell。
只有在我有图像视图时才能动态调整单元格大小。
我在imageView下面添加了一个带有自动布局的标签。
在viewDidLoad上,图像被截断或文本被截断。如何在UICollectionViewCell中动态调整图像视图和标签的大小。
以下是我的代码,仅适用于imageView
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let imageSize = model.images[indexPath.row].size
return imageSize
}
我有一组显示内容的文字和图片。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let imageSize = model.images[indexPath.row].size
//find the height of label on setting text.
//create a temp label
let tempLabel = UILabel()
tempLabel.numberOfLines = 0
tempLabel.text = "abcd" //set ur cells text here
let labelSize = tempLabel.intrinsicContentSize
return CGSize(width: imageSize.width + labelSize.width, height: imageSize.height + labelSize.height)
}
答案 1 :(得分:0)
标签宽度=图像视图的宽度。 没关系。 对于高度,您可以使用“内在内容大小”功能来获取标签的大小。
答案 2 :(得分:0)
此处collectioncell是收藏视图的出口
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let cellsize = CGSize(width: (collectioncell.bounds.size.width/2) - 12, height:(collectioncell.bounds.size.height/3) - 20)
return cellsize
}