我正在尝试更新可重用的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];
答案 0 :(得分: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