2010-05-28 15 views

Respuesta

25

O bien utilizar un UILabel sobre su imageView o dibujar una cadena en el contexto gráfico actual con

- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(UILineBreakMode)lineBreakMode 
+0

gracias funcionó –

+0

Justo lo que estaba buscando! –

+13

Solo para ampliar la respuesta, este es un método en NSString. Entonces, por ejemplo: '[@" test "drawInRect: CGRectMake (0, 0, 10, 10) con Fuente: [UIFont systemFontOfSize: 8]];' – Marty

1

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 

El método en la respuesta aceptada ha quedado en desuso. El método que desearía usar en su lugar es - [NSString drawInRect:withAttributes:].

Se supone que para llamar a este método desde dentro del método de una subclase UIViewdrawRect:, pero si subclase UIImageView, drawRect: nunca se le llamará. (From the docs: "UIImageView no llama a la drawRect: Método de sus subclases.")

Por lo tanto, realmente no se puede dibujar texto en una UIImageView, pero se puede subclase UIView y hacer que dibujar una imagen con el texto en la parte superior como se propuso anteriormente.

Cuestiones relacionadas