我在tableView(第1部分)中有一部分行,我需要为该部分中的所有行初始化[NSIndexPath]
数组。
我知道我可以很容易地计算该部分中的行数:
let rowsInSection = tableView.numberOfRowsInSection(1)
但这只能得到行数,而不是索引路径。
什么是最干净,最像" Swift-like"检索索引路径的方法?
我正在寻找的一个例子:
func indexPathsForRowsInSection(section: Int) -> [NSIndexPath] {
// magic happens here
return indexPathsForRowsInSection
}
答案 0 :(得分:8)
像Swift 3中的这样:
func indexPathsForRowsInSection(_ section: Int, numberOfRows: Int) -> [NSIndexPath] {
return (0..<numberOfRows).map{NSIndexPath(row: $0, section: section)}
}
答案 1 :(得分:4)
我不知道你为什么要这样,但你可以这样做:
let paths = (0..<tableView.numberOfRowsInSection(section)).map { NSIndexPath(forRow: $0, inSection: section) }
return paths
答案 2 :(得分:0)
这是基于Vincent和Matt答案的UITableView的简洁Swift 3扩展:
extension UITableView {
func indexPathsForRowsInSection(_ section: Int) -> [NSIndexPath] {
return (0..<self.numberOfRows(inSection: section)).map { NSIndexPath(row: $0, section: section) }
}
}
// usage
tableView.indexPathsForRowsInSection(aNumber)
答案 3 :(得分:0)
let section = 1
let numberOfRows = 15
let indexPaths = (0..<numberOfRows).map { i in return
IndexPath(item:i, section: section)
}