当按钮是iOS中自定义单元格的子视图时,如何动态更改按钮文本?
Posted
技术标签:
【中文标题】当按钮是iOS中自定义单元格的子视图时,如何动态更改按钮文本?【英文标题】:How do you change button text dynamically when button is subview of a custom cell in iOS? 【发布时间】:2013-08-07 18:35:07 【问题描述】:我正在制作一个 ios 应用程序,它有一个带有原型单元的 Table View
。我在cellForRowAtIndexpath
方法中配置了单元格,效果很好,但是当我想在按钮创建后更改按钮中的文本时,我遇到了麻烦。我想要它,以便在我点击按钮时更改按钮文本。我试着做:
[button setTitle:@"Change" forState:UIControlStateNormal];
在单击按钮时运行的 clickMethod 内部,但无论我按下哪个按钮,它都会更改最后一个单元格中的文本。我在上面尝试的方法不起作用,因为我有同一个按钮的多个实例。(每行一个)所以有人知道我如何更改我只单击的按钮的文本。创建按钮的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
//configure cell
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(clickMethod:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Button" forState:UIControlStateNormal]
[button setTag:6789];//set tag so we can identify the button
button.Frame=CGRectMake(218, 5, 99, 53);
[cell addSubview:button];//put the button in the cell
[cell setIndentationWidth:45];
[cell setIndentationLevel:1];
return cell;//return the cell object
非常感谢您的帮助。我可以发布更多代码,但我认为这与问题无关。 提前致谢。
【问题讨论】:
请在询问之前请在谷歌上搜索。已有许多解决方案可用。 我之前看了一下,没有找到,但我会再看一遍。 你的单元格似乎不是自定义的......是吗? @TheTiger 是的,它是一个自定义单元格。-(void)clickMethod:(id)sender[sender setTitle:@"Change" forState:UIControlStateNormal];
这样做。
【参考方案1】:
当cellForRowAtIndexPath:
方法调用多次时,您不能在按钮上设置标题。如果按钮是全局声明的,它将更改最后一个按钮的标题。就这样吧
-(void)clickMethod:(id)sender
[sender setTitle:@"Change" forState:UIControlStateNormal];
发送者将拥有点击按钮的实例。
【讨论】:
以上是关于当按钮是iOS中自定义单元格的子视图时,如何动态更改按钮文本?的主要内容,如果未能解决你的问题,请参考以下文章