如何通過單擊選擇和取消選擇此UITableView中的所有單元格?如何使用一個UIButton從UITableView中選擇和取消選擇所有複選標記?
這個按鈕有問題。所以,我的想法是,當我點擊它時,UITableView中的所有單元格都有一個複選標記(select),當我再次單擊它時,所有單元格都沒有複選標記(取消選擇)。
我已經實現了UIButton在點擊後改名(從「全選」改爲「取消全選」,反之亦然)。
這是我寫的臺詞:
let locationItems:[String] = ["China", "United States", "South Africa", "Spain", "Australia", "Brazil", "Colombia", "Nigeria", "India"]
var selectedItemsIndex:Int?
var selectIndicator = true
@IBOutlet var tableViewWithOptions: UITableView!
@IBOutlet var selectAllLabel: UIButton!
@IBAction func selectAllButton(sender: AnyObject) {
if (selectIndicator == true) {
if selectAllLabel.titleLabel?.text == "Select all" {
selectAllLabel.setTitle("Deselect all", forState: UIControlState.Normal)
}
selectIndicator = false
} else {
if selectAllLabel.titleLabel?.text == "Deselect all" {
selectAllLabel.setTitle("Select all", forState: UIControlState.Normal)
}
selectIndicator = true
}
tableViewWithOptions.reloadData()
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let index = selectedItemsIndex {
let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: index, inSection: 0))
cell?.accessoryType = .None
}
let cell = tableView.cellForRowAtIndexPath(indexPath)
cell?.accessoryType = .Checkmark
}
PLS,讓我知道。 謝謝!
您需要首先讓您的數據模型跟蹤當前選擇哪些行。 – rmaddy
您不能跟蹤單元格中的選擇狀態(使用附件類型),您需要其他一些變量。我推薦一個NSMutableIndexSet。選擇一個單元格意味着您將該行添加到集合中,取消選擇意味着將其刪除。選擇全部通過addIndexesInRange完成,取消全部選擇只是爲了清除索引集 – Paulw11