gpt4 book ai didi

ios - CustomCell 中的 UISwitch 未更改特定索引路径处的值

转载 作者:行者123 更新时间:2023-11-28 21:42:40 24 4
gpt4 key购买 nike

这是我制作的屏幕类型:screen 1
因此,当UISwitch 状态发生变化时,它应该将标签更改为ONOFF。在我的 cellForRowAtIndexPath 中,我正在调用 [cell.mainSwitch addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];switchChanged如下:

-(void) switchChanged:(id)sender {
UISwitch* cellNew = (UISwitch*)sender;

if ([cellNew isOn]) {
cell.funcStatus.text = [funcStatusArr objectAtIndex:0];
} else {
cell.funcStatus.text = [funcStatusArr objectAtIndex:1];
}
}

现在我面临的问题是它没有更改特定单元格的 Label 但所有开关都在更改第 4 个(最后一个)单元格的标签,如下图所示。 problem
如您所见,第一个标签已关闭,但它正在更改最后一行的标签。关于它发生的原因或如何告诉函数此 index.row 正在发送请求的任何想法。

最佳答案

所以你必须给所有的 UISwitch 添加 tag 属性。更快的方法是在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 调用

 // code
// its good work if u have only 1 section
mySwitch.tag = indexPath.row.
//code

比修复你的代码

-(void) switchChanged:(UISwitch*)switch {
SettingsTableViewCell *selectedCell;
NSIndexPath *selectedIndexPath;
if(switch.tag == 0)
// create selectedIndexPath with correctrly row and section
selectedIndexPath = [NSIndexPath indexPathForRow:'YourRow'inSection:'Your section']
// create cell
selectedCell = [self.tableView cellForIndexPath:selectedIndexPath];
} else if(switch.tag == 1) {
// same logic;
}

// and replace text for selected cell
if ([switch isOn]) {
selectedCell.funcStatus.text = [funcStatusArr objectAtIndex:0];
} else {
selectedCell.funcStatus.text = [funcStatusArr objectAtIndex:1];
}
}

它必须工作。

关于ios - CustomCell 中的 UISwitch 未更改特定索引路径处的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31427769/

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