我有一个集合视图。当我切换通话中状态栏时,我的收藏视图项目会在绿色"您正在通话时消失。状态栏可见。当我解雇酒吧时,他们会回来。
日志吐出这个:"未定义UICollectionViewFlowLayout的行为,因为项目高度必须小于UICollectionView的高度减去该部分的顶部和底部值。"
有没有人遇到过这个,你是如何得到它的?我正在使用sizeForItemAtIndexPath,如下所示:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}
我应该使用其他东西来指定每个项目的大小吗?
答案 0 :(得分:5)
对于任何体验过此事的人。这是定义项目大小的正确方法:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}
您可能还可以在collectionViewLayout上设置itemSize,但是在电话呼叫时使项目保持不变并且不会消失的关键是在viewDidLayoutSubviews中重新加载集合视图:
[self.collectionView reloadData];