2017-01-30 16 views
0

я повернута UILabel (UILabel с преобразованием): centerLabel.transform = CGAffineTransformMakeRotation((90 * M_PI)/180);Рендер UILabel с преобразованием

мне нужно вынести мой UILabel в UIImage, но я не могу сделать это с преобразованием. Когда я выношу UILabel, я получаю UILabel без преобразования. Как я могу это сделать?

Это мой метод:

+ (UIImage *) imageWithView:(UIView *)view andOpaque:(BOOL)opaque { 
UIGraphicsBeginImageContextWithOptions(view.bounds.size, opaque, 0.0); 
[view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage * img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return img; 
} 

ответ

0

Чтобы сделать изображение из UILabel, попробуйте этот код:

#import <QuartzCore/QuartzCore.h> 
#import <QuartzCore/CALayer.h> 

повернута ваш UILabel

centerLabel.transform = CGAffineTransformMakeRotation((90 * M_PI)/180); 

после этого хранить захват d изображения в UIImage

UIImage *image = [self imageWithView:centerLabel]; 

Захваченное изображение будет без вращения. Если вы хотите использовать это изображение во вращении, вам нужно использовать CGAffineTransformMakeRotation для этого UIImageView после захвата UILabel.

- (UIImage *) imageWithView:(UIView *)view 
{ 
    // Create a "canvas" (image context) to draw in. 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0); // high res 

    // Make the CALayer to draw in our "canvas". 
    [[view layer] renderInContext: UIGraphicsGetCurrentContext()]; 

    // Fetch an UIImage of our "canvas". 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

    // Stop the "canvas" from accepting any input. 
    UIGraphicsEndImageContext(); 

    // Return the image. 
    return image; 
}