рисовать текст с помощью coregraphics в iphone - PullRequest
7 голосов
/ 28 мая 2010

Как нарисовать текст на изображении с помощью coregraphics в iphone

Ответы [ 2 ]

25 голосов
/ 28 мая 2010

Либо используйте UILabel поверх imageView, либо нарисуйте строку в текущем графическом контексте с помощью

- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(UILineBreakMode)lineBreakMode
1 голос
/ 27 марта 2015

TextImageView.h

@interface TextImageView : UIView

@property (nonatomic, strong) UIImage *image;
@property (nonatomic, strong) NSString *text;

@end

TextImageView.m

@implementation TextImageView

- (void)drawRect:(CGRect)rect
{
    [self.image drawInRect:self.bounds];
    [self.text drawInRect:self.bounds
           withAttributes:@{}];
}

@end

Метод в принятом ответе устарел. Вместо этого вы можете использовать метод - [NSString drawInRect:withAttributes:].

Вы должны вызывать этот метод из drawRect: метода подкласса UIView, но если вы подкласс UIImageView, drawRect: никогда не будет вызван. ( Из документов : "UIImageView не вызывает метод drawRect: его подклассов.")

Итак, вы действительно не можете нарисовать текст на UIImageView, но вы можете создать подкласс UIView и сделать так, чтобы он рисовал изображение с текстом сверху, как предложено выше.

...