iphone - 获取 UISwitch 行的 NSIndexPath

标签 iphone objective-c ipad ios5 nsindexpath

我有一个带有自定义 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/

相关文章:

iphone - 架构 i386 的 6 个重复符号

iphone - UIScrollView contentSize 问题 - 带有示例代码

objective-c - 同一屏幕上的两个表格 View

iphone - 适合 iPad 的 PDF 页面大小 (dpi) 是多少?

ios - iPad 弹出窗口中的 NavigationView 在 SwiftUI 中无法正常工作

iphone - “NSURLIsExcludedFromBackupKey”未声明

ios - 防止通话状态栏影响 View

iphone - 如何使用 GPUImage 编辑现有视频并将其重新保存在设备库中

iphone - GH 单位和 "Undefined symbols"错误

ios - 如何检查设备是否通过airplay连接?