Правя изглед на анотация, който включва персонализиран бутон. Когато този бутон бъде докоснат, той трябва да направи нещо. Първо ще се опитам да го отпечатам. Тъй като работи сега, анотационният изглед се затваря, без да отпечатва нищо. Затваря се, защото правя бутон.removeFromSuperview. Ето как изглежда съвсем накратко и се фокусирайте само върху бутона
class CustomAnnotation: MKPinAnnotationView, MKMapViewDelegate, CLLocationManagerDelegate {
let infoButton : UIButton = UIButton.init(frame:CGRect(x: 250, y: -300, width: 40, height: 40))
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(true, animated: animated)
if(selected) {
infoButton.setImage(UIImage(named:"home.png"), for: .normal)
infoButton.addTarget(self, action: #selector(sayHello), for:.touchUpInside)
self.addSubview(infoButton)
} else {
infoButton.removeFromSuperview()
}
func sayHello(sender: UIButton!) {
print("I should print something...")
}
}
Всичко в персонализирания изглед на анотация изглежда страхотно. Извиквам класа CustomAnnotation в моя Viewcontroller във функцията viewForAnnotation.