ios - Dibujando texto coloreado en UIView''s-drawRect: método
uikit uicolor (2)
Estoy tratando de dibujar texto coloreado en mi subclase UIView
. Ahora mismo estoy usando la plantilla de la aplicación Vista única (para pruebas). No hay modificaciones excepto el método drawRect:
El texto se dibuja, pero siempre es negro, no importa a qué ajuste el color.
- (void)drawRect:(CGRect)rect
{
UIFont* font = [UIFont fontWithName:@"Arial" size:72];
UIColor* textColor = [UIColor redColor];
NSDictionary* stringAttrs = @{ UITextAttributeFont : font, UITextAttributeTextColor : textColor };
NSAttributedString* attrStr = [[NSAttributedString alloc] initWithString:@"Hello" attributes:stringAttrs];
[attrStr drawAtPoint:CGPointMake(10.f, 10.f)];
}
También he intentado [[UIColor redColor] set]
en vano.
Responder:
NSDictionary * stringAttrs = @ {NSFontAttributeName: font, NSForegroundColorAttributeName: textColor};
En lugar de UITextAttributeTextColor
, debe usar NSForegroundColorAttributeName
. ¡Espero que esto ayude!
Puedes probar con los siguientes métodos. Le ayudará a dibujar texto en UIView en la esquina inferior derecha con la ayuda de los siguientes atributos.
- NSFontAttributeName - Nombre de fuente con tamaño
- NSStrokeWidthAttributeName - Ancho de trazo
- NSStrokeColorAttributeName - Color del texto
Objective-C : dibujar texto en la vista UIV y regresar como UIImage.
-(UIImage *) imageWithView:(UIView *)view text:(NSString *)text {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
// Setup the font specific variables
NSDictionary *attributes = @{
NSFontAttributeName : [UIFont fontWithName:@"Helvetica" size:12],
NSStrokeWidthAttributeName : @(0),
NSStrokeColorAttributeName : [UIColor blackColor]
};
// Draw text with CGPoint and attributes
[text drawAtPoint:CGPointMake(view.frame.origin.x+10 , view.frame.size.height-25) withAttributes:attributes];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}`
Swift : dibuja texto en la vista UIV y vuelve como UIImage.
func imageWithView(view : UIView, text : NSString) -> UIImage {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
view.layer.renderInContext(UIGraphicsGetCurrentContext()!);
// Setup the font specific variables
let attributes :[String:AnyObject] = [
NSFontAttributeName : UIFont(name: "Helvetica", size: 12)!,
NSStrokeWidthAttributeName : 0,
NSForegroundColorAttributeName : UIColor.blackColor()
]
// Draw text with CGPoint and attributes
text.drawAtPoint(CGPointMake(view.frame.origin.x+10, view.frame.size.height-25), withAttributes: attributes);
let img:UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}`