我正在使用集合 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));

我们确定一行中将出现多少个项目,以便能够确定该部分中的行数。

10-07 16:09