gpt4 book ai didi

ios - 从 subview 中引用包含 UIView 的内容?

转载 作者:行者123 更新时间:2023-11-29 11:11:29 25 4
gpt4 key购买 nike

当我将 UIView 子类对象添加到 UIView - 例如原型(prototype) UITableViewCell 中的 UISwitch 并且我通过 IBAction 将此开关与 ViewController 连接时,如何在此操作中找出调用的 UISwitch 所在的表行?

我附上图片只是为了清楚 - 当调用 UISwitch 时,我想知道调用的 UISwitch 在哪一行。

xcode

最佳答案

我认为做到这一点的“最干净”方法是让开关将其 Action 发送到单元本身。您需要将 UITableViewCell 子类化以实现该操作,并将其自身传递给 View Controller 上的方法(可能通过为单元格提供 View Controller 所连接的委托(delegate))。这是相当多的排场;下面有更直接但不太合适的方法。

一种方法是在首先配置表格 View 单元格时在 UISwitch 上指定一个 tag(即在您的 tableView:cellForRowAtIndexPath: 方法中)。像 switch.tag = indexPath.row;然后您可以稍后通过询问它的标签从开关中检索行。

另一种方法是向上搜索 UISwitch 的 super View ,直到找到 UITableViewCell,然后找到它所在的行。像这样的东西:

UIView *view = switch.superview;
while (view && ![view isKindOfClass:[UITableViewCell class]]) {
view = view.superview;
}
// at this point, view is nil or a table view cell; ask the table view for its index path
if (view) {
NSIndexPath *path = [tableView indexPathForCell:cell];
}

关于ios - 从 subview 中引用包含 UIView 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375594/

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