gpt4 book ai didi

iphone - 添加自定义操作:@selector to UISwitch on TableViewCell

转载 作者:行者123 更新时间:2023-12-03 18:45:35 24 4
gpt4 key购买 nike

我有 TableCellViewController 用于管理 UITableView 中的单元格。每个单元格都有一个 UISwitch (dictTypeSwitch) 标签。我想分配方法来切换事件,这样我就可以保存按钮的状态。

到目前为止我已经这样做了:

将 setState 函数分配给对象:

[cell.dictTypeSwitch addTarget:self action:@selector(setState:) forControlEvents:UIControlEventTouchUpInside];

处理事件的函数:

- (void)setState:(id)sender {
BOOL state = [sender isOn];
NSString *rez = state == YES ? @"YES" : @"NO";
NSLog(rez);
}

从发送者那里我得到 UISwitch 对象,我可以从中获取状态。

到目前为止一切正常。

但是如果我想保存 UISwitch 的状态,我必须获取该单元格的 rowIndex 。我怎样才能实现这个目标?

The cells are made inside function cellForRowAtIndexPath. Se the code bellow:

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"DictionariesTableCellViewController";
DictionariesTableCellViewController *cell = (DictionariesTableCellViewController *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];


NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"DictionariesTableCellViewController" owner:nil options:nil];

for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (DictionariesTableCellViewController *) currentObject;
break;
}
}
}

// Configure the cell...

cell.dictTypeLabel.text = [NSString stringWithFormat:@"row - %i",indexPath.row];
[cell.dictTypeSwitch addTarget:self action:@selector(setState:) forControlEvents:UIControlEventTouchUpInside];

return cell;
}

谢谢

最佳答案

您可以使用 UISwitch 的 .tag property存储任意整数。这可以设置为行索引。

如果可以从 UISwitch 的父级找到 UITableViewCell,则可以使用以下命令获取索引路径

NSIndexPath* indexPath = [theTableView indexPathForCell:theCell];

关于iphone - 添加自定义操作:@selector to UISwitch on TableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206953/

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