我正在制作一个注释视图,其中包含一个自定义按钮。点击此按钮时,它应该执行某些操作。首先,我将尝试打印。正如现在一样,注释视图正在关闭,无需打印任何内容。它关闭,因为我做了一个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中。
答案 0 :(得分:0)
它正在执行.removeFromSuperview(),因为你将selected设置为false,所以你的if语句总是失败,然后转到else。
你的专栏: super.setSelected(false,animated:animated)
应该是: super.setSelected(选中,动画:动画)