以编程方式在自定义注释中按钮

时间:2017-01-25 18:38:48

标签: ios swift mapkit

我正在制作一个注释视图,其中包含一个自定义按钮。点击此按钮时,它应该执行某些操作。首先,我将尝试打印。正如现在一样,注释视图正在关闭,无需打印任何内容。它关闭,因为我做了一个button.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...")
  }
}

自定义注释视图中的所有内容都很棒。 我在viewForAnnotation函数中将CustomAnnotation类调用到我的Viewcontroller中。

1 个答案:

答案 0 :(得分:0)

它正在执行.removeFromSuperview(),因为你将selected设置为false,所以你的if语句总是失败,然后转到else。

你的专栏:     super.setSelected(false,animated:animated)

应该是:     super.setSelected(选中,动画:动画)