我有一个表视图,其中包含一系列不同的部分和每个部分中的动态行数。在第一部分中,我有一个单元格来“全选”。是否有一种快速简便的方法来手动选择所有单元格,因此config.paperclip_defaults = {
url: ":s3_domain_url",
path: "/:class/:attachment/:id_partition/:style/:filename",
storage: :s3,
s3_protocol: 'http',
s3_credentials: {
bucket: ENV.fetch('S3_BUCKET_NAME'),
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
s3_region: ENV.fetch('AWS_REGION'),
}
}
中的代码会触发,下次用户按下其中一个单元格时会触发didSelect
?我现在能想到的唯一方法是循环遍历所有部分,并在每个部分循环遍历didDeselect
并调用
0 < indexPath.row < section's data array count
但有没有办法在没有这么多循环的情况下做到这一点?
答案 0 :(得分:1)
否强>;没有循环就没有办法做到这一点。您可以通过使用方法扩展UITableView
来使自己更轻松一些。这应该这样做:
extension UITableView {
func selectAll(animated: Bool = false) {
let totalSections = self.numberOfSections
for section in 0 ..< totalSections {
let totalRows = self.numberOfRows(inSection: section)
for row in 0 ..< totalRows {
let indexPath = IndexPath(row: row, section: section)
// call the delegate's willSelect, select the row, then call didSelect
self.delegate?.tableView?(self, willSelectRowAt: indexPath)
self.selectRow(at: indexPath, animated: animated, scrollPosition: .none)
self.delegate?.tableView?(self, didSelectRowAt: indexPath)
}
}
}
}
只需将其添加到根级别的任何Swift文件中,然后就可以在任何tableView.selectAll()
上调用UITableView
。
答案 1 :(得分:0)
NSTableView有selectAll
方法。