3

我有一个收藏视图。当我切换通话状态栏时,当绿色的“您正在通话”状态栏可见时,我的收藏视图项目就会消失。当我关闭酒吧时,他们会回来。

日志吐出:“未定义 UICollectionViewFlowLayout 的行为,因为项目高度必须小于 UICollectionView 的高度减去部分插入顶部和底部值。”

有没有人遇到过这种情况,您是如何解决的?我使用 sizeForItemAtIndexPath 如下:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}

我应该使用其他东西来指定每个项目的大小吗?

4

1 回答 1

5

对于其他经历过这种情况的人。这是定义项目大小的正确方法:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}

您可能还可以在 collectionViewLayout 上设置 itemSize,但要使项目保持不变,并且在通话时不会消失,关键是在 viewDidLayoutSubviews 中重新加载集合视图:

[self.collectionView reloadData];
于 2013-04-30T15:51:45.933 回答