Prevent calculation of current index path when the collection view is empty

This commit is contained in:
Levi McCallum
2016-03-24 21:33:01 -07:00
parent 1199dd69f7
commit d845a18dfb

View File

@@ -25,10 +25,8 @@
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset
{
if (self.currentIndexPath) {
CGPoint contentOffset = [self _targetContentOffsetForItemAtIndexPath:self.currentIndexPath
return [self _targetContentOffsetForItemAtIndexPath:self.currentIndexPath
proposedContentOffset:proposedContentOffset];
self.currentIndexPath = nil;
return contentOffset;
}
return [super targetContentOffsetForProposedContentOffset:proposedContentOffset];
@@ -43,6 +41,10 @@
- (NSIndexPath *)_indexPathForVisiblyCenteredItem
{
if ([self _dataSourceIsEmpty]) {
return nil;
}
CGRect visibleRect = [self _visibleRect];
CGFloat visibleXCenter = CGRectGetMidX(visibleRect);
NSArray<UICollectionViewLayoutAttributes *> *layoutAttributes = [self layoutAttributesForElementsInRect:visibleRect];
@@ -54,6 +56,18 @@
return nil;
}
- (BOOL)_dataSourceIsEmpty
{
if ([self.collectionView numberOfSections]) {
if ([self.collectionView numberOfItemsInSection:0] == 0) {
return YES;
}
} else {
return YES;
}
return NO;
}
- (CGRect)_visibleRect
{
CGRect visibleRect;