2
UICollectionView
의 Coverflow 스타일 레이아웃에서 작업하고 있습니다. 그것의 간단하고 충분한 개념, 그리고 단지 그것을 쉽게 만들기 위해 주제에 대한 약 100 자습서가 있습니다. 그러나 변환을하는 사람이 알고있는 것처럼 m34
은 마법의 숫자입니다. 그러나 내 회전에 대한 관점을 얻기 위해 설정하자마자보기가 사라집니다.UICollectionViewFlowLayout 사라지는 셀을 초래하는 transform.m34의 하위 클래스
나는이 문제가 bounds/zIndex 문제라고 생각하지만, zIndexes로 원숭이를 돌리고 조정을 클리핑 한 후에 셀은 그냥 나타나기를 거부합니다. 어떤 도움이 크게 감사합니다.
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{
NSArray *array = [super layoutAttributesForElementsInRect:rect];
CGRect visibleRect = (CGRect){self.collectionView.contentOffset, self.collectionView.bounds.size};
CGFloat maxDistance = visibleRect.size.width/2.0;
CGFloat maxRotation = M_PI_2;
[array enumerateObjectsUsingBlock:^(UICollectionViewLayoutAttributes * attributes, NSUInteger idx, BOOL *stop) {
CGFloat distanceFromCenter = CGRectGetMidX(visibleRect) - attributes.center.x;
CGFloat percentageFromCenter = distanceFromCenter/maxDistance;
percentageFromCenter = MIN(percentageFromCenter, 1.0);
percentageFromCenter = MAX(percentageFromCenter, -1.0);
CGFloat angle = percentageFromCenter * maxRotation;
CATransform3D transform = CATransform3DIdentity;
// transform.m34 = 1.0/-800.0;
transform = CATransform3DRotate(transform, angle, 0.0, 1.0, 0.0);
attributes.transform3D = transform;
}];
return array;
}