큰 UICollectionViewCell (UICollectionView 높이의 두 배 이상)이 주어진 스크롤 오프셋에서 사라지고 주어진 스크롤 오프셋 후에도 다시 나타나기 때문에 here과 같은 문제가 발생합니다. 나는 (나는 그것이 개인 API 알고 있지만 상관없이, 나는 애플 스토어에 제출 할 필요가 없습니다) 여기큰 UICollectionViewCell이 스크롤 할 때 사라집니다.
내 사용자 지정을 UICollectionView를 서브 클래스와 _visibleBounds
에 사용자 지정 작업을 수행하는 것입니다 @JonathanCichon solution을 구현했습니다
모음보기 :
이 작동#import "CollectionView.h"
@interface UICollectionView()
- (CGRect)_visibleBounds;
@end
@implementation CollectionView
- (CGRect)_visibleBounds
{
CGRect rect = [super _visibleBounds];
rect.size.height = [self heightOfLargestVisibleCell];
return rect;
}
- (CGFloat)heightOfLargestVisibleCell
{
// get current screen height depending on orientation
CGFloat screenSize = [self currentScreenHeight];
CGFloat largestCell = 0;
NSArray *visibleCells = self.visibleCells;
// get the largest height between visibleCells
for (UITableViewCell *c in visibleCells)
{
CGFloat h = c.frame.size.height;
largestCell = h > largestCell ? h : largestCell;
}
// return higher value between screen height and higher visible cell height
return MAX(largestCell, screenSize);
}
, 더 이상 스크롤에 사라하지하지만 난 여전히 문제가 내 스크롤 위치가 큰 세포의 중간에있을 때 내가 reloadData
을 수행하는 경우, 그것은 ... 으로 이전 사라 데이터를 다시로드 한 후에 나타났습니다.(내 heightOfLargestVisibleCell
방법)반환 nil
, 그것은 _visibleBounds
에 대한하지만 현재 눈에 보이는 셀 높이 화면 높이 < 때문에 내 화면의 높이를 가지고 있으므로,이 하나가 표시되지 않습니다 ...
누군가가 이미이 문제에 직면? 사전
많은 Thx 그것은 매력처럼 작동합니다! – Yaman