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
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;
}`