gpt4 book ai didi

ios - 在表格 View 单元格中标记按钮

转载 作者:行者123 更新时间:2023-11-29 03:21:06 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个表格 View 。在 TableView 的每个单元格中都必须有一个按钮,该按钮应链接到单独数组中的对象。在 Storyboard中,我将按钮的标签设置为数字 6(用于填充表时的配置目的)。

现在,为了区分添加的按钮,在 tableview:cellForRowAtIndexPath 中,我更改了按钮的标记,如下所示:

[(UIButton*)[cell viewWithTag:6] setTag:1000+indexPath.row];

因此,当单击按钮时,我会减去 1000,并知道它在数组中应指向的索引。问题是,当我执行此标记时,只有几个按钮被标记,其他按钮在代码中显示为空(但当我运行应用程序时它们确实出现)。

为什么会发生这种情况?有没有办法将单元格中的一组按钮引用到数组?注意:我这样做不是为了选择表格单元格,我知道我可以实现它。但我的单元格中有多个按钮。

这是调试器的图片。 PRE 表示标记之前和标记单元格中的按钮之后“添加”。如您所见,前 5 个被标记,其他开始显示为空。请注意,所有这些按钮都位于表的同一部分。 enter image description here

最佳答案

这是行不通的,因为当你调用 setTag 时,当 View 可见时,单元格的标签将被设置,但是当你滚动 TableView 并且单元格离开屏幕时,它会被放入可重用池中,并且如果单元格可见它再次取自可重用池,并将具有您在 Storyboard 中设置的标签 6。我不知道你想达到什么目的,但如果你知道它总是 1000+indexPath.row,你为什么要设置标签?您还应该将 [cell viewWithTag:6] 更改为 [cell.contentView viewWithTag:6] 将 subview 添加到 contentView 而不是直接添加到 cell。

//扩展如果您想知道按下了哪个按钮以及在哪个单元格上,您可以像这样向按钮点击事件添加方法:

- (IBAction)buttonPressed:(id)sender {
//Button pressed
UIButton *pressedButton = (UIButton*)sender;
// Cell on which the button was pressed
UITableViewCell *cell = (UITableViewCell*)[[[sender superview] superview] superview];
}

关于ios - 在表格 View 单元格中标记按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com