Drawing colored text in UIView's -drawRect: method
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.
- NSFontAttributeName - Font name with size
- NSStrokeWidthAttributeName - Stroke Width
- NSStrokeColorAttributeName - Text Color
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; }`