Я изучил эту проблему, к сожалению, у меня не было никаких решений, специфичных для проблемы.Выноска для пользовательского MKAnnotationView не отображается
Проблема такова:
У меня есть пользовательский MKAnnotationView с DrawRect преодолено. Я не могу использовать свойство изображения, потому что у меня есть это свойство, называемое dotColor, которое влияет на то, что рисует аннотация.
Код:
class CustomAnnotationView: MKAnnotationView {
var dotColor: UIColor!
init(annotation: CustomAnnotation, color: UIColor) {
super.init(annotation: annotation, reuseIdentifier: "CustomAnnotationView")
self.annotation = annotation
frame.size = CGSize(width: 20, height: 20)
dotColor = color
opaque = false
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func drawRect(rect: CGRect) {
if annotation != nil && dotColor != nil {
let context = UIGraphicsGetCurrentContext()
let circleFrame = CGRectInset(rect, 2, 2)//Needs the inset to show the stroke completely
CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor)
CGContextSetStrokeColorWithColor(context, dotColor.CGColor)
CGContextSetLineWidth(context, 3)
CGContextFillEllipseInRect(context, circleFrame)
CGContextStrokeEllipseInRect(context, circleFrame)
}
}
}
Но когда я нажимаю на вид аннотаций на карте, он не показывает выноски (Я довольно уверен, что MKAnnotation имеет название Вы можете проверить ответ этого потока.: "If the title is nil, the callout...")
Если бы вы могли указать на некоторые ошибки, сделанные в коде, я был бы очень признателен. – Blip
Установлен ли 'canShowCallout' в значение' true'? После 'opaque = false', попробуйте сделать' canShowCallout = true'. – Anna
@ Анна Спасибо за ваш ответ, потому что это сработало! Вы сделали мой день. – Blip