【发布时间】:2020-08-21 05:39:12
【问题描述】:
我有一个视图控制器,我可以在其中添加多个带有LongPressGesture 的子视图。对于每个subview,我提供了一个TapGesture,它应该为此视图打开一个popover(见下图)。
我的问题是,我只能打开我添加的最后一个子视图的弹出框。那么为什么我不能再与其他子视图交互了呢? 这是我在 Swift 中的第一个应用程序,所以如果有人可以帮助我,那就太好了。
一些代码给你:
这是创建新子视图的根视图控制器上的 LongPressGesture。
@IBAction func onLongPress(_ gesture : UILongPressGestureRecognizer) {
let position: CGPoint = gesture.location(in: view)
if(gesture.state == .began) {
let subview = MySubview(position: position)
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
subview.addGestureRecognizer(tapGesture)
view.addSubview(subview)
}
else if (gesture.state == .ended) {
let subview = self.view.subviews.last
self.openContextMenu(for: subview)
}
}
带有子视图的 ViewController:-
【问题讨论】: