Настраиваемое событие для сенсорного вызова

Я использую SMCalloutView Для создания пользовательского выноски для моего mapView. Проблема, с которой я сталкиваюсь, заключается в том, что когда вид выноски виден, а пользователь нажимает на выноску, если под представлением выноски находится другая аннотация, она отклоняет текущую выбранную аннотацию и выбирает ту, которая находится под видимым видом выноски.

Я подумал, что, возможно, мне удастся создать подкласс UIView, чтобы перехватывать все сенсорные события. Итак, я создал подкласс UIView, все функции запускаются корректно, если я добавляю его непосредственно в mapView. Но когда я использую его для поповера, кажется, что он совсем не работает.

 import Foundation
 import UIKit

class popOverSub: UIView {

override init(frame: CGRect) {
    super.init(frame: frame)

    let myTap = UITapGestureRecognizer(target: self, action: "touchEventTest")
    addGestureRecognizer(myTap)
    userInteractionEnabled = true
    backgroundColor = UIColor.greenColor()

}

required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

func touchEventTest() {

    println("touchEventTest")
}

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    println("touch begins")
}
}

Для завершения здесь я вызываю пользовательский CalloutView.

func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) {

 let popView = popOverSub(frame: CGRect(x: 0, y: 0, width: 100, height: 200))
            calloutView.contentView = popView
            self.calloutView.calloutOffset = CGPoint(x: view.frame.width*0.5, y: 0)
            self.calloutView.delegate = self

            calloutView.presentCalloutFromRect(calloutView.bounds, inLayer: view.layer, constrainedToLayer: self.mapView.layer, animated: true)
}

Что я должен сделать. Если пользователь нажимает в представлении выноски, он не отменяет выноску и не передает событие касания в mapView/Annotation внизу. Вместо этого необходимо вызвать функцию. Любые советы будут великолепны.

0 ответов

Другие вопросы по тегам