如何获得一个 Cell 的数量?
Posted
技术标签:
【中文标题】如何获得一个 Cell 的数量?【英文标题】:How to have the number of a Cell? 【发布时间】:2016-05-03 15:11:47 【问题描述】:我有一个带有一些单元格的UICollectionView
。
我在这里做了一些测试:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
NSLog(@"nsindex path %@", indexPath);
cell.backgroundColor=[UIColor greenColor];
return cell;
以下是日志中显示的一个单元格的示例:
nsindex path <NSIndexPath: 0xc000000000200016> length = 2, path = 0 - 1
如何从本例中的对象中提取值1
(来自path = 0 - 1
)?
【问题讨论】:
【参考方案1】:indexPath.row
访问表格单元格编号,indexPath.item
访问集合单元格编号。
答案最好在here:中解释
【讨论】:
这个答案的第一句话是不正确的。由于这个问题是关于UICollectionView
,所以正确答案是使用indexPath.item
,而不是indexPath.row
。【参考方案2】:
indexPath.item(ios 6.0 及更高版本可用) indexPath.row(iOS 2.0 及更高版本可用)。
indexPath.item or indexPath.row use this for UICollectionView to get cell number
indexPath.row use this for UITableView to get cell number.
【讨论】:
你不是@Teja Nandamuri,但你是对的!谢谢!但是什么是最好用的呢? 我在 NSindexPath 文档中看到它们完全相同,但是 NSindexpath 开头没有 .row 您的推荐很糟糕。使用表格视图时,请使用indexPath.row
。使用集合视图时,请使用indexPath.item
。不要同时使用indexPath.row
。 UICollectionView
专门将item
属性添加到NSIndexPath
。仅仅因为item
和row
看起来相似并不意味着您应该使用when 代替另一个。未来任何一个的实现都可能发生变化,使用错误的实现可能会突然导致大量代码开始中断。
我同意 indexPath.row 用于 UITableView 我很困惑。用于 UICollectionView 的 indexPath.row 和 indexPath.item。我已经更新了我的答案:)
不要将indexPath.row
用作UICollectionView
。 UICollectionView
专门为NSIndexPath
定义了item
和section
属性。【参考方案3】:
NSIndexPath 有两个属性:row
和 section
。属性row
表示当前section
中row
的数量。
【讨论】:
以上是关于如何获得一个 Cell 的数量?的主要内容,如果未能解决你的问题,请参考以下文章