我使用自动布局实现了UICollection视图单元格。它工作正常。
但是我的细胞高度是动态的,因此细胞应根据约束条件改变其高度。
但高度在任何情况下都不会改变。
我的代码
- (void)viewDidLoad {
[super viewDidLoad];
UICollectionViewFlowLayout *flowlayout = (UICollectionViewFlowLayout*)_col.collectionViewLayout;
flowlayout.estimatedItemSize = CGSizeMake(self.view.frame.size.width - 30, 600);
}
-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
FirstCell *cell = [_col dequeueReusableCellWithReuseIdentifier:@"FirstCell" forIndexPath:indexPath];
return cell;
}
故事板
模拟器
所有标签都是多行
帮我解决这个问题
感谢您的时间
答案 0 :(得分:0)
请按照下面的内容来实现自我调整收集细胞。
1)与表格单元格相同,使用约束或覆盖-sizeThatFits:。
2)覆盖 - [UICollectionReusableView preferredLayoutAttributesFittingAttributes:]调整由UICollectionViewLayout确定的布局属性。
3)UICollectionViewFlowLayout上的新的estimatedItemSize属性,相当于UITableView上的estimatedRowHeight。
答案 1 :(得分:0)
在iOS 10之前的iOS中没有自我调整大小的集合视图单元格。(Apple在WWDC视频中声称此功能存在,但事实并非如此。)
您必须实现委托方法collectionView:layout:sizeForItemAtIndexPath
以提供每个单元格的大小。如果你愿意,它可以调用systemLayoutSizeFittingSize:
来使用内部约束来做到这一点;但是运行时不会神奇地为你做这件事。