2012-10-13 9 views
1

내가 UICollectionViewDelegateFlowLayout를 사용하는 UICollectionView 있습니다. 셀 setCollectionViewLayout을 두 드릴 때 레이아웃을 변경하는 방법을 추가했습니다.UICollectionView의 레이아웃 변경 - 변경 세포

모든 세포는 텍스트와 텍스트 레이블을하고 난 레이아웃을 변경하면 모든 세포에있는 모든 텍스트 레이블을 비우하고 싶습니다. 그 일을 수행하는 가장 좋은 방법은 무엇입니까? 내가 가장 간단한 방법을 상상

답변

3

덕분에, 당신이 레이아웃을 변경할 동시에 컬렉션보기에 reloadData 전화 (텍스트 레이블을 비워 당신의 cellForItem 데이터 소스 방식으로 조건을 가지고있다 각 레이아웃 변경시).

또는, 당신은 그들이 현재 표시하고있는 레이아웃의 당신의 UICollectionViewCells 킵 트랙을 가질 수 있고, 그에 따라 자신의 견해를 조정합니다.

+0

감사 남자. 큰 일 : 나는 [[CircleLayout 클래스] [[자기 collectionView] collectionViewLayout] isKindOfClass]을 사용했다. 그게 최선의 방법인지 모릅니다. 유일한 문제는 reloadData를 호출하기 때문에 레이아웃 사이의 애니메이션이 실제로 작동하지 않는다는 것입니다. – Mikael

+0

내가 더 잘 작동 및 레이아웃 사이의 애니메이션을 유지할 수있는 제안 두 번째 방법은 - 유일한 단점은 구현하기가 좀 더 열심히 될 것입니다. 레이아웃이 바뀌면 'NSNotification'을 실행하고 셀에서 소리를들을 수 있습니다. 그런 식으로 다시로드 할 필요가 없으며 애니메이션이 남아 있어야합니다. – lxt

+0

예, 그럴 수 있습니다. 감사. 참고로 내 collectionview 작업을 iPad의 사진 앱과 비슷하게 만들려고합니다. 사과가 하나의 collectionview를 사용하고 레이아웃을 변경했다고 생각하십니까? 어쩌면 나는 그 두 번째 질문을 열어야한다. – Mikael