簡體   English   中英

UIView點擊識別器不起作用

[英]UIView tap recognizer not working

嘗試在UIView上進行工作點擊識別:

@IBOutlet weak var mapView_: GMSMapView!
@IBOutlet weak var viewInfo: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    /* MapView inital values & dependencies */
    let initialLocation = CLLocationCoordinate2DMake(37.78, -122.41)
    let camera = GMSCameraPosition.cameraWithTarget(initialLocation, zoom: 10)

    /* Set up MapView */
    mapView_.camera = camera
    mapView_.myLocationEnabled = true
    mapView_.delegate = self

    var selfTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "viewTapped:")
    viewInfo.addGestureRecognizer(selfTap)
    viewInfo.userInteractionEnabled = true
    mapView_.insertSubview(viewInfo, aboveSubview: mapView_)
}
func viewTapped(recognizer: UIGestureRecognizer) -> Void{
    NSLog("tapped")
}

它無法識別水龍頭。

任何想法 ? 謝謝

問題解決了”

發生問題是由於viewInfo是googlemaps視圖的子視圖。 我無法將tap事件委托給viewcontroller,因此我假設事件“ tap”正在發送到mapview。

我從mapview中取出了viewInfo,並在約束條件下播放了一些內容。 因此,viewInfo的父級現在是viewcontroller,並且可以毫無問題地識別出tap事件。

我猜這不是更好的解決方案,因為在情節提要中移動子視圖時,我們需要非常小心,不要讓它成為mapview的一部分,但是有一段時間我無法弄清楚如何將子視圖委托給viewcontroller。

謝謝大家的幫助。

您需要從handleTap:刪除: ,或者需要將您的方法更改為handleTap(sender: UITapGestureRecognizer)

采用:

 func handleTap(sender: UITapGestureRecognizer) { NSLog("tapped") } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM