如何使用自动布局动态调整具有固定宽度的collectionview单元格高度?
Posted
技术标签:
【中文标题】如何使用自动布局动态调整具有固定宽度的collectionview单元格高度?【英文标题】:How to dynamically size collectionview cell height with fixed width using autolayout? 【发布时间】:2015-04-21 02:48:38 【问题描述】:我已经阅读了所有堆栈溢出帖子,这些帖子描述了如何使用自动布局动态计算 UITableView 单元格设置的高度,并且我能够成功地实现它。
我的问题是对集合视图单元格做同样的事情。问题出在collectionView:layout:sizeForItemAtIndexPath:
中,当我调用[collectionViewCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]
时,它返回的大小针对高度和宽度都进行了压缩。
有没有办法恢复压缩后的大小,宽度固定为 contentView 的原始值?那么,本质上是获得固定宽度的压缩高度?
【问题讨论】:
【参考方案1】:你可以这样做:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
return CGSizeMake(STATIC_WIDTH, [collectionViewCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height);
希望这能解决。让我知道:)
【讨论】:
这通常有效,但如果单元格的高度取决于宽度(例如纵横比),它将不起作用。以上是关于如何使用自动布局动态调整具有固定宽度的collectionview单元格高度?的主要内容,如果未能解决你的问题,请参考以下文章