我创建了两个或更多自定义单元格
每个单元格内都有一个开关
如何知道我点击的行中的哪个开关
ex.I点击第3行中的开关,它将返回indexPath.row = 3
并且开关状态是打开还是关闭?
我应该放入哪个空白?
我知道有一种方法可以通过以下方式获得indexpath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
但我不想触摸那一行,只是开关......
哦,我做了一些研究,但它只是有点不同
How can keep track of the index path of a button in a tableview cell?
任何想法?
我希望我可以发布我的屏幕截图,但不是我是新用户 系统不允许我这样做
答案 0 :(得分:3)
创建交换机时,请为其设置目标和操作:
[mySwitch addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged];
此处,目标self
是您的UITableViewController
,您需要在其中实施方法(void) switchToggled:(id)sender
来处理控件事件。切换时,交换机会自动将switchToggled
方法作为sender
方法发送给UIButton
。像这样(从您链接的- (void)switchToggled:(id)sender {
UISwitch *theSwitch = (UISwitch *)sender;
UITableViewCell *cell = (UITableViewCell *)theSwitch.superview;
UITableView *tableView = (UITableView *)cell.superview;
NSIndexPath *indexPath = [tableView indexPathForCell:cell];
if(theSwitch.on) {
// switch turned on
}
else {
// switch turned off
}
}
示例修改):
{{1}}
答案 1 :(得分:1)
创建按钮时
button.tag = [indexPath row]
选择按钮时,将行拉出标记
int myRow = [(UIButton *)sender tag];