我正在处理集合视图,我想要上一节中的行数。 是否有任何方法在部分返回行数。 请帮帮我。
答案 0 :(得分:3)
可以手动调用您需要实现以显示单元格的UICollectionView dataSource
的委托方法。
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
因此您可以使用以下方式调用它:
NSInteger numberOfRows = [self collectionView:self.collectionView numberOfItemsInSection:MAX(0, currentSection - 1)];
你不想得到越界异常,所以我把它限制在0 *
修改强>
如果您知道商品宽度的大小,则可以执行以下操作:
//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));
我们确定一行中会显示多少项,以便能够确定该部分中的行数。
答案 1 :(得分:1)
在collectionview中有两种方法,请注意该方法不在collectionview的委托中。
- (NSInteger)numberOfSections;
- (NSInteger)numberOfItemsInSection:(NSInteger)section;
你可以调用[self.collectionView numberOfSections];找到sectionCount。
你可以调用[self.collectionView numberOfItemsInSection:somesection];在某个部分找到行。