2016-08-13 1 views
0

내가 이미 가지고있는 것 : 가로로 스크롤 한 UICollectionView 및 셀 (셀 한 줄)입니다.iOS UICollectionView 셀의 애니메이션이 전환 될 때 표시됩니다.

내가하고 싶은 일 : 셀이 나타나기 시작할 때 - cells이 오른쪽 (화면 외부)에서 왼쪽으로 슬라이드하면 결국 UICollectionView의 왼쪽 경계에서 멈 춥니 다.

어떻게하면됩니까? 어떤 도움이라도 대단히 감사합니다!

Question explained in this picture...

+0

찾고 싶은 것은 collectionView.contentInset입니다. 음수 x 값이 collectionView.bounds.size.width와 동일한 UIEdigeInsets로 설정하십시오. 상속 된 스크롤 뷰 메서드를 사용하여 setContentOffset : animated : 오프셋 0에서 시작하고 contentOffset == collectionView.bounds.size.width로 애니메이션 적용 – danh

+0

올바른 방법으로 컬렉션보기 레이아웃을 다시 구현하거나 쉬운 방법으로 시도 할 수 있습니다. 델리게이트의 메소드'willDisplayCell :'을 특정 인세 트와 함께 사용하는 것 –

+0

@ 감사합니다. 인터넷에서 검색을 한 후 contentInset에 애니메이션을 적용하면 제안한 것과 같은 방식으로 작업을 수행하는 것으로 보입니다. 내가 먼저 이것을 시도하고 당신을 따라 가게 해주세요.] – mach7

답변

0

대신 세포를 애니메이션/레이아웃, 나는 당신에 의해 이전의 셀 위치에 자신의 위치에서 collectionView 셀을 이동해야

1

... 그 배경 색상 [UIColor clearColor]UICollectionView, 애니메이션 울부 짖는 소리 주어진 다음과 같은 방법 내가 수집보기에서 같은 애니메이션을 구현해야

[collectionView moveItemAtIndexPath:fromIndexPath toIndexPath:toIndexPath]; 

를 사용하여 :

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { 

     let myreact = cell.frame 
     cell.frame = CGRect(x: cell.frame.origin.x+320, y: cell.frame.origin.y, width: cell.frame.size.width, height: cell.frame.size.height) 

     let value = Double(indexPath.row)*0.1 
     UIView.animate(withDuration: 0.8, delay:value, options: .curveEaseInOut, animations: { 

      cell.frame = CGRect(x: myreact.origin.x+100, y: myreact.origin.y, width: myreact.size.width, height: myreact.size.height) 

     }) { (finish) in 

      UIView.animate(withDuration: 0.8, animations: { 
       cell.frame = myreact 
      }) 
     } 
    } 

} 

스위프트 3.0에서 사용해보기

+0

가능합니다. 감사! – mach7

+0

주어진 코드를 사용하십시오. 제 일을 처리하고 있습니다. – Aashish1aug

관련 문제