我正在使用UITableView自定義單元格(xib)。每個單元格都是lables和一個複選框(UIButton)。UITableViewCell複選框重複滾動
我在每個部分有2個部分和4個單元格。如果我檢查第一部分的第一個單元格,第二部分的第一個單元格也會被檢查,而我不想要。問題:dequeueReusableCellWithIdentifier:CellIdentifier。
我想保持我的單元格標識符是靜態的。
我該如何解決這個問題?
這是我的數組的初始化(對於我的單元的內容):
for(int i=0; i<NUMBER_OF_CELL; i++){
Account *model = [[Account alloc]init];
[model setAccountName:[NSString stringWithFormat:@"Account %d",i]];
[model setAccountNumber:[NSString stringWithFormat:@"Number %d",i]];
[_accountArray addObject:model];
}
設置內容:
[[cell accountLabel] setText:_model.accountName];
[[cell accountNumberLabel] setText:_model.accountNumber];
編輯:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
_model = [_accountArray objectAtIndex:indexPath.row];
AccountCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"AccountCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
// configure cell
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[[cell accountLabel] setText:_model.accountName];
[[cell accountNumberLabel] setText:_model.accountNumber];
// checkbox ?
if(cell.isChecked){
NSLog(@"Checked");
}else{
NSLog(@"No checked");
}
return cell;
}
在另一個c lass,我檢查複選框是否被選中:
- (IBAction)checkbox:(id)sender {
NSIndexPath *indexPath = [(UITableView *)self.superview indexPathForCell: self];
if(self.isChecked == NO)
{
self.isChecked = YES;
[_checkbox setImage:[UIImage imageNamed:@"checkbox_checked.png"] forState:UIControlStateNormal];
}
else{
self.isChecked = NO;
[_checkbox setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
}
}
如何區分每個單元以避免重複檢查?
非常感謝! 此致敬禮,
把代碼od cellforrowAtindexpath方法 – iPatel 2013-03-19 14:41:10
完成;)謝謝:) – Lapinou 2013-03-19 14:46:28