0

수평 스크롤 방향 :사용자 지정 애니메이션 - 나는 정의 <code>UICollectionViewFlowLayout</code>을 구현하고 나는 같은 것을 할 싶습니다

기본적으로 enter image description here

, 이것은로 설정 스크롤 방향 단순한 모음이다 UICollectionViewScrollDirectionHorizontal. (: 275x275 예) 작아야이 경우 B를 다른 세포 :

활성 셀 (중앙의 셀)은 고정 된 크기 (최대 300x300 예)를 가져야한다.

스크롤이 그들 사이에서 수행 될 때, 두 셀은 크기를 변환해야합니다.

  • 크기 -> B 크기
  • B 크기 -> 사이즈.
  • B는 내가 아마 - (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect을 무시하고 CGAffineTransformMakeScale의 어떤 종류를 구현해야 중간

에 지금있다. 나는 생각하고 있니? 누구든지 전에 이것을 했습니까?

+0

그것은 답이 아니다,하지만 난 [iCarousel] (https://github.com/nicklockwood/iCarousel) – EDUsta

+0

iCarousel 될 것 유효한 대안을 제시하고자하지만 난 정말 충실하고 싶지 않아 타사 구성 요소. 어쨌든 고마워. –

답변

1

문제가 해결되었습니다.

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect 
{ 
    CGFloat centerX = self.collectionView.contentOffset.x + self.collectionView.frame.size.width * 0.5; 

    NSArray *attributes = [super layoutAttributesForElementsInRect:rect]; 

    for (UICollectionViewLayoutAttributes *attrs in attributes) { 

     CGFloat diff = ABS(attrs.center.x - centerX); 

     CGFloat newScale = diff * scaleFactor/(self.itemSize.width + self.minimumLineSpacing); 

     if (newScale > scaleFactor) { 
      newScale = scaleFactor; 
     } 

     attrs.transform = CGAffineTransformMakeScale(1 - newScale, 1 - newScale); 
    } 

    return attributes; 
} 
관련 문제