我正在使用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