这有点难以描述,所以如果需要更多信息请告诉我。 VIEW 1仅出现在特定标准上。此视图显示在其他视图之前。如果出现VIEW 1,我在VIEW 2上设置了出口约束,以便更改顶部位置。
如果出现VIEW1,请将VIEW 2顶部约束设置为143,否则设置为0
@IBOutlet weak var view2Top: NSLayoutConstraint!
//set in function where criteria is checked
view2Top.constant = 143
这符合标准。但是当VIEW1出现时,它会导致在VIEW 3上设置的点击手势(红色边框)停止工作。隐藏视图1并点击手势有效。现在VIEW 4 tap工作正常,它和VIEW 3完成相同。 VIEW 3有一个红色边框视图,位于地图顶部连接插座的位置。
VIEW 3设置如下
@IBOutlet weak var mapViewOverlay: UIView!
let mapTap = UITapGestureRecognizer()
在viewDidLoad中,手势定义为
mapTap.addTarget(self, action: #selector(self.mapTapped))
mapViewOverlay.addGestureRecognizer(mapTap)
mapTapped就是
func mapTapped(){
print("mapTapped")}
我已经尝试过设置强大的插座,但并不重要。任何人都知道需要改变什么,所以手势不会丢失?
更新
因此,解决方案是移除地图上的叠加层,边框为红色,禁用与地图的任何交互,并将VIEW3设置为具有敲击手势。这实际上简化了布局。实际原因仍然未知,但也许是过度思考它实际上是原因。
感谢大家的时间。