2013-04-29 68 views
3

我有收藏视图。当我切换通话状态栏时,当“您正在通话中”状态栏显示绿色时,我的收藏查看项目会消失。当我解雇酒吧时他们回来。当用户打电话时,收藏查看项不会显示

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

有没有人遇到过这个问题,你是怎样得到它的?我使用sizeForItemAtIndexPath如下:

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

我应该用别的东西来指定每个项目的大小?

回答

5

对于任何体验过这一点的人。这是定义项目大小的正确方法:

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

你也许还设置itemSize在collectionViewLayout,但关键是使该项目坚持围绕,而不是消失的时候就一个电话,是重装viewDidLayoutSubviews中的collection视图:

[self.collectionView reloadData]; 
+2

不'self.collectionView.frame.size'返回* entire * view的大小吗? – expert 2013-10-05 07:02:21

+1

此外,您可以在-viewDidLoad创建self.view.frame.size时以编程方式设置itemSize的集合视图布局对象(在Xib /故事板或代码中)。它适用于iOS6和7。 – valdyr 2013-10-18 13:09:20

+0

适合你的好友。非常感谢。 – Manthan 2014-02-26 06:18:41