2015-07-10 51 views
3

我想添加UIViewMKAnnotationView作爲圖像。但首先我要旋轉UIView,然後添加新的UIImageUIVIew。你可以幫我嗎?我試過但UIView從不旋轉。MKAnnotationView旋轉的圖像

UIView *pinView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 63, 63)]; 
pinView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"IconMapPin"]]; 
pinView.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(self.heading)); 

UIImage *pinImage = [self imageFromUIView:pinView];  
annotationView.image = pinImage; 

方法轉換的UIView到的UIImage

- (UIImage *) imageFromUIView:(UIView*)view 
{ 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0); 
    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 

回答

1

刪除此,

pinView.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(self.heading)); 

添加這個,

pinImage.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(self.heading)); 

在此之後,

UIImage *pinImage = [self imageFromUIView:pinView]; 

所以最終代碼會,

UIView *pinView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 63, 63)]; 
pinView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"IconMapPin"]]; 


UIImage *pinImage = [self imageFromUIView:pinView]; 
pinImage.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(self.heading)); 
annotationView.image = pinImage;