2013-04-29 31 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