Swift 按下地图视图的指南针按钮时如何调用函数

Swift 按下地图视图的指南针按钮时如何调用函数,swift,mapkit,Swift,Mapkit,我开发了一个应用程序,用指南针按钮显示地图视图。按下此指南针按钮的自然功能是地图朝向北方。 现在我想在按下这个指南针按钮时调用一个函数 可以在那里找到带有地图的应用程序视图(在右上角可以看到指南针按钮) 下面的代码工作正常。显示它只是为了提供完整的视图 @IBOutlet weak var mapView: MKMapView! let compassButton = MKCompassButton(mapView: mapView) compassButton.compassVisi

我开发了一个应用程序,用指南针按钮显示地图视图。按下此指南针按钮的自然功能是地图朝向北方。 现在我想在按下这个指南针按钮时调用一个函数

可以在那里找到带有地图的应用程序视图(在右上角可以看到指南针按钮)

下面的代码工作正常。显示它只是为了提供完整的视图

@IBOutlet weak var mapView: MKMapView!

let compassButton = MKCompassButton(mapView: mapView)   
compassButton.compassVisibility = .visible       
mapView.addSubview(compassButton)

我正在寻找一种在用户按下地图视图上的指南针按钮时创建动作的方法。

我相信
MKCompassButton
继承自
UIView
,因此您只需向
compassButton
添加一个
uitagesturerecognizer
,操作如下:

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleCompassTap))
    compassButton.addGestureRecognizer(tapGestureRecognizer)


    @objc func handleCompassTap() {
    // Implement your feature when the compass button tapped.
    }
以Emrepus代码为例

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleCompassTap))
compassButton.addGestureRecognizer(tapGestureRecognizer)


@objc func handleCompassTap() {
// Implement your feature when the compass button tapped.
}
再加上这一行

tapGestureRecognizer.numberOfTouchesRequired = 1


MKCompassButton
UIView
的子类。只需添加一个
uitappesturerecognizer
,就可以更改已建立的UI元素的功能。用户的期望值是由以前的经验设定的,您应该有很好的理由反对这一点。你确定单独控制不是更好的解决方案吗?@Magnas:完全共享。在我的例子中,我在同一视图中使用缩放的地图。我想同步两个贴图的方向。这就是我需要添加一些额外的.code的原因。
tapGestureRecognizer.numberOfTapsRequired = 1