gpt4 book ai didi

swift - Xcode 12 和 iOS 14 中的手势问题

转载 作者:行者123 更新时间:2023-12-03 09:16:42 24 4
gpt4 key购买 nike

升级到 Xcode 12 和 iOS 14 后出现问题。
设想:
我有一个嵌套的 UITableView:嵌套表 View .像下面

class GAllowGestureEventPassTableView: UITableView, UIGestureRecognizerDelegate {

var allowGestureEventPassViews: [UIView] = []

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
panGestureRecognizer.cancelsTouchesInView = false
guard let otherView = otherGestureRecognizer.view else { return false }
print("tableView 💙 : \(type(of: otherView))")
if allowGestureEventPassViews.contains(otherView) {
print("allowGestureEventPassViews contains 💙 : \(type(of: otherView))")
print("gesture pass 💙 ")
return true
} else {
return false
}
}
}
然后我将另一个 UITableView 添加到 嵌套表 View 的 allowGestureEventPassViews 数组。所以我可以控制哪个 tableView 可以滚动。
    self.nestedTableView.allowGestureEventPassViews.append(controller.tableView)
在 Xcode 11.7 中,iOS 14 运行良好。
日志:
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : UITableView
allowGestureEventPassViews contains 💙 : UITableView
gesture pass 💙
但升级到 Xcode 12 后发现手势有所不同。
在 Xcode 12 中,手势永远不会通过 嵌套表 View .
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : GAllowGestureEventPassTableView
tableView 💙 : UITableViewCellContentView
有没有人有同样的问题?或者我误解了 iOS14 手势。

最佳答案

我找到了答案。
在 iOS14 中,某些原因, UITableViewCellContentView 层次不同。
tableView(_:cellForRowAt:) 我添加 subview

 cell.addSubview(contentScollView)
UITableViewCellContentView 正在阻止手势。
改成
 cell.contentView.addSubview(contentScollView)
这解决了我的问题。

关于swift - Xcode 12 和 iOS 14 中的手势问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63987896/

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