我的自定義MKAnnotationView
子類不要設置它的image
屬性。相反,它處理一些子視圖來顯示。自定義MKAnnotationView觸摸區域可笑地縮小
我在我的委託中執行public func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
來檢測註釋觸摸。
由於觸摸區域默認使用image
屬性進行計算,因此我的註釋視圖觸摸區域大約爲1px。這是荒唐的。
這是我如何創建它:
init(annotation: JZStreamAnnotation) {
self.imageView = UIImageView.init(image: <an image>)
self.imageView.contentMode = .center
super.init(annotation: annotation, reuseIdentifier: JZStreamAnnotationView.identifier)
self.canShowCallout = false
self.imageView.center = CGPoint(x: self.frame.width/2, y: self.frame.height/2)
self.addSubview(self.imageView)
}
I read this post,但我想不通的則hitTest方法是如何工作的。在這裏,讓沒有實現:
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if point.x > -100, point.x < 100, point.y > -100, point.y < 100 {
//return self
//return self.imageView
return super.hitTest(point, with: event)
}
return .none
}
地處if
條款觸發一個breapoint,但無論返回(super
/self
/imageView
)什麼都不做。
最後,如果我實現則hitTest這樣的:
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
return .none
}
,如果我在我的annotationView確切中心CLIC,如果解僱了public func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
委託方法!
任何建議放大觸摸區?