我正在尝试为表格视图中的每个单元格添加自定义单选按钮。当我第一次查看表格视图时,我看不到任何单选按钮。但是当我向下滚动时,我可以在首次加载视图时看到的初始单元格下方的每个单元格上看到单选按钮。一旦没有单选按钮的单元格不在视野范围内,我返回查看该单元格,就会出现单选按钮。
以下是我对这一方法的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ImageCellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ImageCellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ImageCellIdentifier];
cell.accessoryType = UITableViewCellAccessoryNone;
}
_radioBtn.frame = CGRectMake(275, 3,36,36);
_radioBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[_radioBtn setImage:[UIImage imageNamed:@"Radio-Btn.png"] forState:UIControlStateNormal];
[cell.contentView addSubview:_radioBtn];
NSString *cellValue = [_arrayRelat objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
cell.textLabel.textColor = [UIColor colorWithRed:(88.0/255.0) green:(88.0/255.0) blue:(89.0/255.0) alpha:1];
return cell;
}
如果您不理解这个问题,请告诉我。
答案 0 :(得分:1)
你用每个新细胞覆盖_radioBtn! 您应该为每个单元格创建一个新的UIButton实例,例如:
UIButton *radioBtn = [UIButton buttonWithType:UIButtonTypeCustom];
radioBtn.frame = CGRectMake(275, 3,36,36);
[radioBtn setImage:[UIImage imageNamed:@"Radio-Btn.png"] forState:UIControlStateNormal];
[cell.contentView addSubview:radioBtn];
你应该把它放在你的if (cell == nil)
块中,只为每个单元创建一次。