[英]Tap gesture recognizer Not working for UIWebiew inside UIScrollView,which is inside 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.