我有一个mapViewController,上面有一些自定义UIView(只有两个带有某些背景的标签)。我想在此UIView上点击后显示新的ViewController。
因此,我的代码(对于其他情况,这是一个可行的解决方案)用于自定义UIView:
tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "checkGesture:")
tapGestureRecognizer.numberOfTapsRequired = 1
self.userInteractionEnabled = true
self.addGestureRecognizer(tapGestureRecognizer)
Run Code Online (Sandbox Code Playgroud)
和
func checkGesture(sender: UITapGestureRecognizer) {
print("it works")
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里是什么问题?
编辑(已解决):因此,我尝试将此自定义UIView放在另一个ViewController上,并且可以正常工作。看来这个问题的主要根源是我的MapViewController中的下一部分代码:
let mapView = GMSMapView.mapWithFrame(CGRectZero, camera:camera)
self.view = mapView
Run Code Online (Sandbox Code Playgroud)
没有最后一行(self.view = mapView),我的自定义UIView可以正常工作(但是我没有任何地图,因此我不得不对此代码稍作更改)。
let mapView = GMSMapView.mapWithFrame(CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), camera:camera)
self.view.addSubview(mapView)
Run Code Online (Sandbox Code Playgroud)
我认为,如果您不想将GMSMapView子视图添加为子视图,那么最好的解决方案是:
添加GMSMapViewDelegate到您的中ViewController。
在viewDidLoad您ViewController添加的上myMapView.delegate = self。
还添加以下功能:
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
print("!map tapped!")
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |