我有一个带有自定义 UITableViewCells 的表格 View ,表格中的每一行都有一个 UILabel、UISwitch 和详细信息披露指示器。
我正在寻找捕获交换机的 UIControlEventChanged 的最佳方法,但我还需要更改的交换机的 NSIndexPath 来更新核心数据。
我也不希望 UISwitch 作为附件类型。
我已经在谷歌上搜索了几个小时,不断出现的解决方案是使用
[switch addTarget:self action:@selector(switchTapped:) forControlEvents:UIControlEventChanged];
然后在 switchTapped: 方法中使用以下内容来获取 NSIndexPath
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)[[sender superview] superview]];
有更好的方法吗?我已经对 UITableViewCell 进行了子类化,我可以在此类中放置一个方法来返回给定开关的 NSIndexPath 吗?
预先感谢您的帮助
最佳答案
我会再利用一次机会链接到我的答案 here - 标签和 View 层次结构的行走很笨重,容易出错且不必要,而且我在 SO 答案中到处都看到它们被推荐。您可以使用其框架和 TableView 的 indexPathForRowAtPoint:
方法找到任何控件的索引路径。
关于iphone - 获取 UISwitch 行的 NSIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772049/