I am trying to draw colored text in my UIView
subclass. Right now I am using the Single View app template (for testing). There are no modifications except the
Instead of UITextAttributeTextColor
you should use NSForegroundColorAttributeName
. Hope this helps!
You can try with following methods. It will help you to draw text in UIView at the bottom right corner with the help of following attributes.
Objective-C - Draw text in the UIView and return as 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 - Draw text in the UIView and return as 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;
}`