我是iphone开发的新手。我在地图上添加了注释。我能够在didSelectAnnotationView()中捕获注释上的点击事件。但我想在用户点击它时更改注释的图像。
答案 0 :(得分:4)
设置图像属性。
annView.image = [UIImage imageNamed:@"AnnotationIcon.png"];
修改
所以,你似乎在使用MKPinAnnotationView
它具有pinColor
属性。
因此,您可以将其更改为
pin.pinColor = MKPinAnnotationColorRed; // green and purple are 2 other colors.
答案 1 :(得分:1)
如果您使用的是MKAnnotationView
而不是MKPinAnnotationView
,则可以依靠MKMapViewDelegate
方法:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
view.image = [UIImage imageNamed:@"selected_image"];
}
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
view.image = [UIImage imageNamed:@"deselected_image"];
}
答案 2 :(得分:1)
斯威夫特3: 我假设您已经将此功能用于自定义MKAnnotation视图
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {...}
我会将@djibouti33的答案从Objective-c更新为Swift 3:
func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {
view.image = UIImage(named: "unselected_marker")
view.frame = CGRect(x: 0, y: 0, width: 40, height: 40)//keep the new icon size resobable.
}
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
view.image = UIImage(named: "selected_marker")
view.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
}