我正在使用CGAffineTransformMakeRotation旋转MKAnnotationView的图像属性。然而,在这种情况下,整个视图都会旋转,以及标注泡泡。所以我按照MKAnnotationView Only Rotate the Image property之后的建议,现在创建一个UIImageView并将其作为子视图添加到MKAnnotationView中。图像现在显示并旋转,没有问题。但是,现在MKAnnotationView不响应触摸事件。我需要它像以前一样行事 - 点击/触摸它应该显示标注泡泡。任何想法我需要做什么?旋转MKAnnotationView的显示图像
初始方式我尝试(其旋转标注气泡):
MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
aView.image = [UIImage imageNamed:@"mapPin.png"];
float newRad = degreesToRadians(degreesToRotate);
[aView setTransform:CGAffineTransformRotate(CGAffineTransformIdentity, newRad)];
使用一个UIImageView并添加作为一个子视图:
MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
UIImageView *iv = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"mapPin.png"]];
iv.userInteractionEnabled = YES;
[aView addSubview:iv];
aView.canShowCallout = YES;
更新 我试图添加一个手势识别器,但它不起作用。当我点击地图上的MKAnnotationView内的UIImageView时,imageTapped方法不会被调用。这是在方法中: - (MKAnnotationView *)的MapView:(的MKMapView *)MView的viewForAnnotation:(ID)注释
MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
UIImageView *iv = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"mapPin.png"]];
iv.userInteractionEnabled = YES;
iv.exclusiveTouch = NO;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[iv addGestureRecognizer:tapGesture];
[aView addSubview:iv];
我没有运气尝试这个前几天,我将在本周末再次尝试一下,看看如果我有任何运气。 – mservidio
给出我写它的方式,应该记住将手势识别器添加到图像视图并将图像视图用户交互设置为yes。 –
触摸手势事件不会触发......我会发布我在问题中尝试的内容。 – mservidio