Drawing colored text in UIView's -drawRect: method Drawing colored text in UIView's -drawRect: method ios ios

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