收集视图的差异&表视图方法

时间:2017-05-14 03:18:40

标签: ios uitableview uicollectionview

UICollectionView有一个方法indexPathsForVisibleItems,它返回索引路径数组。其中UITableView具有类似的方法indexPathsForVisibleRows,它也返回索引路径数组,但它是可选的。为什么Apple自身的两种类似方法有区别?

1 个答案:

答案 0 :(得分:1)

因为Apple开发人员并不完美,他们并不总是一致。

UITableView自iOS 2.0以来一直存在,如果没有可见的行,有人在2008年决定返回nil

多年后在iOS 6.0中添加了

UICollectionView,如果没有可见的行,有人决定返回一个空数组而不是nil

当然这完全在Objective-C中。当Swift出现时,这意味着UITableView indexPathsForVisibleRows需要是可选的,因为Objective-C属性可能是nil

BTW - 在macOS中,NSCollectionView indexPathsForVisibleItems是一个函数而不是属性,它是一个集合,而不是一个数组。再次,不一致。