【发布时间】:2020-09-21 07:29:58
【问题描述】:
升级到 Xcode 12 和 iOS 14 后出现问题。
场景: 我有一个嵌套的 UITableView:nestedTableView。如下所示
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 添加到 nestedTableView 的 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 中,手势永远不会通过 nestedTableView。
tableView ???? : GAllowGestureEventPassTableView
tableView ???? : GAllowGestureEventPassTableView
tableView ???? : GAllowGestureEventPassTableView
tableView ???? : UITableViewCellContentView
有人有同样的问题吗?或者我对 iOS14 手势有误解。
【问题讨论】:
标签: swift gesture ios14 xcode12