我需要在我的tableview中啓用多項選擇,並且還需要跟蹤我選擇的內容(如將其保存到數組或其他內容中)。我迄今的做法;從表中選擇多條記錄
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text=[arrayobject objectAtIndex:indexPath.row];
bool xx = [[allmyselectedobjects objectAtIndex:indexPath.row] containsIndex:1];
if (xx) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}else{
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
return cell;
}
和didSelectRowAtIndexPath方法方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.cuisineTableView cellForRowAtIndexPath:indexPath];
if ([cell accessoryType] == UITableViewCellAccessoryNone) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
[self.allmyselectedobjects insertObject:1 atIndex:indexPath.row];
}
else {
[cell setAccessoryType:UITableViewCellAccessoryNone];
[self.allmyselectedobjects insertObject:0 atIndex:indexPath.row];
}
}
我可以點擊多條記錄,但是當我向下滾動,我看到其他細胞也用打勾的對勾(我沒有選擇)。我一直在嘗試這幾天,有人可以幫我修復這些代碼嗎?
好的,可以通過編程方式解決這個問題? – Illep 2012-01-01 10:28:15
如上所示使用NSIndexSet來存儲選定的單元格行索引。根據含義NSIndexSet – 2012-01-01 10:48:46
,你的意思是改變allmyselectedobjects的類型爲NSIndexSet而不是NSMutableArray? – Illep 2012-01-01 18:49:07