2014-01-21 3 views
0

자식보기 컨트롤러로 전환 할 때 UICollectionView에서 개별적으로 각 항목에 애니메이션을 적용 할 수 있습니까? 나는 UICollectionViewController을 가지고 있으며 항목이 선택되면 해당 항목을 둘러싼 모든 항목이 선택한 항목에서 튀어 나오길 원합니다.UICollectionView 전환 중에 개별 항목 애니메이션 적용

답변

0

UICollectionView에서 layoutTransition처럼 들리는 내용을 설명합니다. 나의 제안 UICollectionViewLayout를 서브 클래 싱하여 새로운 레이아웃을 생성하고이

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath

당신이 당신이 찾고있는 효과를 만드는 항목의 프레임을 수정할 수 있습니다 오버라이드 (override)하는 것입니다. 특히 선택된 indexPath를 추적하고 해당 항목을 영향을받지 않은 상태로 유지할 수 있습니다. 나머지는 다음과 같이 할 수 있습니다.

CGRect selectedItemFrame = [[super layoutAttributesForItemAtIndexPath:self.selectedIndexPath] frame]; 

CGFloat xOffset = attributes.frame.origin.x <= selectedItemFrame.origin.x ? -400.0 : 400.0; 
CGFloat yOffset = attributes.frame.origin.y <= selectedItemFrame.origin.y ? -600.0 : 600.0; 
CGRect newFrame = CGRectOffset(attributes.frame, xOffset, yOffset); 
attributes.frame = newFrame; 

그런 다음 한 레이아웃에서 다른 레이아웃으로 전환을 트리거하면됩니다.

관련 문제