2013-04-29 3 views
3

콜렉션보기가 있습니다. 통화 상태 표시 줄을 전환하면 녹색의 "통화 중"상태 표시 줄이 보이면 컬렉션보기 항목이 사라집니다. 내가 변호사를 기각 할 때 그들은 돌아온다.콜보기 사용자가 통화중인 경우보기 항목이 표시되지 않습니다.

로그에 "UICollectionViewFlowLayout의 동작이 정의되지 않았습니다. 항목 높이가 UICollectionView의 높이에서 섹션의 상단 및 하단 값을 뺀 값보다 작아야하기 때문입니다."

누구에게도이 문제가 발생 했습니까?

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

내가 각 항목의 크기를 지정하는 다른 뭔가를 사용해야 다음과 같이 나는 sizeForItemAtIndexPath를 사용하고?

답변

5

이 모든 것을 경험하십시오. 이 항목의 크기를 정의 할 수있는 올바른 방법입니다 :

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

당신은 아마 또한 collectionViewLayout에 itemSize을 설정할 수 있습니다,하지만 항목이 곁에 만들기 위해 키와 전화 통화에서, 다시로드 할 때 사라지지 viewDidLayoutSubviews의 콜렉션 뷰 :

[self.collectionView reloadData]; 
+2

'self.collectionView.frame.size'는 * 전체 *보기의 크기를 리턴하지 않습니까? – expert

+1

또한 collectionview 레이아웃 객체의 itemSize를 -viewDidLoad에서 self.view.frame.size로 (Xib/스토리 보드 또는 코드에서) 만들 때 프로그래밍 방식으로 설정할 수 있습니다. iOS6과 7 모두에서 잘 작동합니다. – valdyr

+0

+1 친구 분. 정말 고마워. – Manthan

관련 문제