2014-11-03 44 views
1

我有一個關於Skobbler MapView和UIPanGestureRecognizer的問題。看來UIPanGestureRecognizer截取了SKMapView的所有平移事件和來自移動地圖位置的塊。Skobbler SKMapView和UIPanGestureRecognizer

您可以在下面看到代碼示例,這是UIPanGestureRecognizer位於父級視圖2級以上的應用程序的唯一區別。

import UIKit 

class IPSkobblerViewController : UIViewController { 

    var mapView : SKMapView!; 

    override func viewDidLoad() { 
     mapView = SKMapView(); 
     mapView.exclusiveTouch = true; 
     self.view.addSubview(mapView); 

     let gestureRecogniser = UIPanGestureRecognizer(target: self, action: "panGesture"); 
     self.view.addGestureRecognizer(gestureRecogniser); 

    } 

    func panGesture() { 
     NSLog("Pan Gesture"); 
    } 

} 
+0

我們正在研究它 – Ando 2014-11-04 07:35:57

回答

1

做的第一件事就是設定識別器的cancelsTouchesInView假

gestureRecogniser.cancelsTouchesInView = false 

這將使手勢識別器,以允許它連接到視圖,以接收觸摸事件。如果該視圖不是地圖視圖,則必須將觸摸事件轉發給它。

+0

我遇到了同樣的問題。我將地圖嵌入到UICollectionViewCell中,因此集合視圖的平移手勢將使用地圖的平移手勢調用(這是cancellsInViewView爲false時)。我似乎無法找到任何方法,因爲沒有任何對SKMapView的手勢的引用。 SKMapView上的平移手勢應該只需要收集視圖的手勢失敗。我也嘗試在UICollectionView上取消ContentContextTouches,但它沒有響應任何接觸(當然),這不是我想要的。將欣賞反饋。謝謝! – RJiryes 2016-09-19 14:03:05

1

它將在3.0.2版本中修復。