我正在使用集合 View ,并且我希望上一节中的行数。
有什么方法可以返回段中的行数。
请帮我。
最佳答案
您将需要手动执行以显示单元格的UICollectionView dataSource
的委托(delegate)方法。
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
因此,您可以使用以下命令调用它:
NSInteger numberOfRows = [self collectionView:self.collectionView numberOfItemsInSection:MAX(0, currentSection - 1)];
您不想超出范围,因此我将其上限设置为0 *
编辑
@holex提出了一个很好的观点-我假设您只有一列。
如果知道项目宽度的大小,则可以执行以下操作:
//Assuming a fixed width cell
NSInteger section = 0;
NSInteger totalItemsInSection = [self.feedCollectionView numberOfItemsInSection:section];
UIEdgeInsets collectionViewInset = self.feedCollectionView.collectionViewLayout.sectionInset;
CGFloat collectionViewWidth = CGRectGetWidth(self.feedCollectionView.frame) - collectionViewInset.left - collectionViewInset.right;
CGFloat cellWidth = [self.feedCollectionView.collectionViewLayout itemSize].width;
CGFloat cellSpacing = [self.feedCollectionView.collectionViewLayout minimumInteritemSpacing];
NSInteger totalItemsInRow = floor((CGFloat)collectionViewWidth / (cellWidth + cellSpacing));
NSInteger numberOfRows = ceil((CGFloat)totalItemsInSection / totalItemsInRow);
NSLog(@"%@", @(numberOfRows));
我们确定一行中将出现多少个项目,以便能够确定该部分中的行数。