首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可重用UITableViewCells的子按钮不允许我更新标签

可重用UITableViewCells的子按钮不允许我更新标签
EN

Stack Overflow用户
提问于 2013-02-09 02:03:33
回答 1查看 86关注 0票数 0

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

代码语言:javascript
运行
复制
UITableViewCell *cell =[tblPlaces dequeueReusableCellWithIdentifier:@"mainTableViewCell"];

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

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-09 02:41:42

这是不起作用的,因为您使用创建的第一个单元格更改了按钮的标记。当您将一个要重用的单元格出队时,它的按钮的标记已经与以前相比发生了变化,因此它不再是107,它是旧的索引。

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

编辑:

这是一个非常简单的例子,展示了你真正需要做的事情:

代码语言:javascript
运行
复制
@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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14778656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档