13
所以我寫了這個代碼把,我想選擇的行旁邊的複選標記,因爲我想多選行如何從UITableView中獲取選定的行?
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
,但是當我使用的方法:
NSArray *selectedIndexPaths = [self.LightsView indexPathsForSelectedRows];
它只是變得我點擊的最後一行。選中標記不選擇它?
不,選擇的是被竊聽最後,並沒有未選擇還行。與細胞的配件無關。你需要跟蹤「選擇」(讓我們稱他們檢查,這將是更合適的)行自己。 – 2013-04-08 18:45:44
還要確保你的'tableView:cellForRowAtIndexPath:'識別單元可以被重用,因此,它將不得不重置該行的'accessoryType'(視情況而定);不要試圖依賴'accessoryType'來知道你是否「檢查」了一行。有一個單獨的模型支持你的tableview跟蹤哪些行被「檢查」,並讓你的上面的代碼更新該模型以及UI,並且也有'tableView:cellForRowAtIndexPath:'引用該模型。 – Rob 2013-04-08 18:48:19