我有這個奇怪的問題。我正在用XCode創建一個清單程序,我正在使用帶有UITableViewCellAccessoryCheckmark的UITableView。我可以選擇單元格,並且會出現複選標記,但不知何故,下面還沒有選中的其他單元格也會出現複選標記。有任何想法嗎?
這裏是我的複選標記編碼:UITableView清單問題
- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell;
cell = [aTableView cellForRowAtIndexPath: indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
我不知道這是否會影響它,但我也實現了這個方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
// Dequeue or create a cell of the appropriate type.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryNone;
}
// Configure the cell.
if(tableView == Table1){
switch(indexPath.section){
case 0:
cell.textLabel.text = [array1 objectAtIndex:indexPath.row];
break;
case 1:
cell.textLabel.text = [array2 objectAtIndex:indexPath.row];
break;
case 2:
cell.textLabel.text = [array3 objectAtIndex:indexPath.row];
break;
}
//cell.textLabel.text = [NSString stringWithFormat:@"Row %d", indexPath.row];
}
if(tableView == Table2){
cell.textLabel.text = [array4 objectAtIndex:indexPath.row];
}
return cell;
}
感謝。
你可以分享你的''tableView:cellForRowAtIndexPath:''的實現嗎? – Prairiedogg 2010-07-13 19:51:32
我同意Prairiedogg,讓我們看看其餘的代碼。您可能會重複使用單元格,因此不會重置其狀態。 – raidfive 2010-07-13 20:10:57
我添加了實現。 – CSwat 2010-07-13 20:11:54