2017-12-20 9 views
0

컬렉션보기에서 항목 삽입을 애니메이션으로 적용하려고 시도한 애니메이션은 화면 외부에서 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로의 슬라이드입니다. 이는 항목의 프레임 원점을 변경하기위한 것입니다 x 값. 내가 애니메이션을 표시하지 즉시 완료 콜백이 호출 UIView.animate를 호출 할 때UICollectionViewController 항목 삽입 애니메이션 Swift

enter image description here

내 문제는, 내가 방법 collectionView (내부 항목의 클래스 내부의 애니메이션 코드를 추가하려고했습니다 _ : cellForItemAt :) 또한 사용자 정의 viewflowlayout을 만들고 layoutAttributesForItemAtIndexPath를 재정 의하여 변환을 추가하려고했지만 그 중 아무 것도 제안하지 않았습니다.

답변

1

이 작동 :

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { 
    UIView.animate(withDuration: 1, animations: { 
     var newFrame = cell.frame 
     cell.frame = CGRect(x: newFrame.origin.x + 50, y: newFrame.origin.y, width: newFrame.width, height: newFrame.height) 
    }) 
} 

는 당신의 필요에 따라 오프셋 교체합니다. 제안이 가장 깨끗한 방법이 아니다 들어, willDisplayCell

+0

감사의 내부

cell.frame.origin.x = cell.frame.origin.x + 50 

을 애니메이션을 반복하지 않도록하기 위해 컨트롤을 구현했지만, 그것을 작동 :

또한이 너무 작동합니다. –

+0

셀에 속성을 가질 수 있으며 dequeReusableCell에서 속성을 설정할 수 있습니다. willDisplayCell에서이 속성을 확인하고 애니메이션을 호출합니다. 나는 당신의 구현에 전적으로 적응하지 못한다. –

+0

다시 한 번 내 코드 때문에 조금 다른 것을했습니다. 내가 이해하지 못했던 사실은 UIView를 사용할 필요가 없다는 사실이었습니다.이 cell.transform = transform과 같은 것을 추가하는 것만으로 애니메이션을 만들 수있었습니다. 이상하게 생겼습니다. –

관련 문제