gpt4 book ai didi

ios - 当每个单元格都有一个 ImageView 覆盖它时,如何让一个 TableView 注册点击?

转载 作者:行者123 更新时间:2023-11-28 15:45:28 27 4
gpt4 key购买 nike

我一直在尝试创建表格 View 单元格,每个单元格都有一个 UIImageView 作为它们的背景。但是,当我点击每个单元格时, TableView 不会注册点击,也不会转换到我连接的 View Controller ,即使我正在使用 didSelectRowAtIndexPath 函数。

我意识到这可能是 ImageView 阻碍了 TableView 注册单元格点击的能力的问题。但是,当我将手指/鼠标从左向右拖动到单元格上时,单元格将过渡,而不是点击。我尝试在 ImageView 上使用点击手势识别器,但它只适用于最顶部的单元格,而不适用于所有单元格。我该如何解决这个问题?

这是表格 View 单元格的图像,因此您可以了解我正在使用的内容:http://imgur.com/a/Ku4uD .谢谢!

最佳答案

如果您在 ImageView 上取消选中“启用用户交互”,问题应该可以解决。遇到问题时,请始终检查大多数 subview 的用户交互并逐步解决。

我还学会了一个技巧,就是创建子类的子类并重写 touchesShouldCancel,如下所示:

override func touchesShouldCancel(in view: UIView) -> Bool {
print("touchesShouldCancel")
//Run extra code that you want when the user selects this view
//then still retrieve the tap by its parent.
return false
}

我不确定你的问题到底是什么,但我会删除你有的任何 segue,通过从 tableView 顶部中心部分左侧的黄色圆圈拖动来添加一个新的 Storyboard中的 ViewController,到您希望它转到的 viewController。给 segue 一个适当的标识符,然后在 tableView didSelectRow 下的 tableView 类中添加 performSegue(withIdentifier: "ChosenIdentifier", sender: indexPath)

然后在prepare forSegue中加入:

if let vc = sender.destination as? TheViewControllerYouAreSegueingTo {
if let indexPath = sender as? IndexPath {
vc.variableIdentifyingWhatCellWasClicked = indexPath.row
}
}

需要进行任何调整以满足您的特定需求。

关于ios - 当每个单元格都有一个 ImageView 覆盖它时,如何让一个 TableView 注册点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145518/

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