0

我正在尝试更新可重用 UITableViewCell 中的按钮标签。对于前 5-8 个单元格,设置标签没有问题,因为据我了解,这些单元格尚未“重用”。一旦 UI 确实必须重用一个单元格,它就不再允许我更改标签或设置按钮的标签。我错过了什么?

UITableViewCell *cell =[tblPlaces dequeueReusableCellWithIdentifier:@"mainTableViewCell"];

if (cell == nil) {
  cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"mainTableViewCell"];
}

[[cell viewWithTag:107] setTag:indexPath.section];
4

1 回答 1

1

这不起作用,因为您正在使用创建的第一个单元格更改按钮的标签。当您出列一个要重用的单元格时,它的按钮标签已经比以前更改了,所以它不再是 107,它是旧索引的任何内容。

我会考虑继承 UITableViewCell 并将按钮添加为子类的属性。这样您就可以直接访问它并且不需要使用标签。

编辑:

这是您真正需要做的所有事情的一个非常简单的示例:

@interface MyTableViewCell : UITableViewCell
@property (nonatomic, retain) UIButton *myButton;
@end

@implementation MyTableViewCell

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Create and add your button in here, or set it equal to the one you create in Interface Builder
    }
    return self;
}

@end
于 2013-02-08T18:41:42.093 回答