2014-03-01 2 views
1

애니메이션을 사용하여 내 collectionview에서 맨 위 셀의 높이를 확장하고 싶습니다. 문제는 셀의 꼭지점을 감지 할 때 높이를 애니메이션화하고 델리게이트에서 새 높이를 설정하는 것입니다. - collectionView : layout : sizeForItemAtIndexPath : indexPath. 내 컬렉션 흐름 레이아웃을 무효화 한 후 즉석 새로 고침이 표시되고 애니메이션이 뒤늦게 발생하는 문제입니다. 내가 원하는 효과는 위쪽 셀이 확장을 새 높이로 애니메이션하고 애니메이션 아래에있는 행을 밀어 넣는 것입니다.애니메이션이 포함 된 UICollectionViewCell의 동적 크기 조정

여러 행이있는 섹션을 하나만 사용하고 있습니다. 두 섹션을 사용하여 첫 번째 섹션에 맨 위 셀을 넣고 나머지 섹션을 두 번째 섹션에 넣으려고합니까? 그런 다음 첫 번째 섹션의 높이와 함께 두 번째 섹션을 애니메이션 할 수 있습니까?

+0

확인 http://stackoverflow.com/questions/13780153/uicollectionview-animate-cell-size-change-on-selection – manya

+0

예상대로 작동하지 않는 것 같습니다. 셀은 애니메이션을 적용하지만 다음 셀의 뷰 뒤에 셀이 숨겨져 있습니다. 다음 셀을 아래로 밀어 내지 않고 전반적인 contentSize를 증가시킵니다. – samonderous

답변

0

는이 세 단계를 수행해야합니다

1.Invalidate 당신의 collectionViewLayout을

self.collectionView.collectionViewLayout.invalidateLayout() 

이 2.Reload가 indexPath를 원하는 또는 performBatchUpdates 내부의 모든 데이터가

collectionView.performBatchUpdates({ 
      self.collectionView.reload(at: DESIRED_INDEXPATH) 
     }, completion: nil) 

3을 차단합니다. sizeForItemAtIndexpath에서 계산 된 새 높이 반환 대리자 메서드