2013-12-09 2 views
0

как CGContextShowTextAtPoint устарел в iOS 7, я хотел бы изменить CGContextShowTextAtPoint на drawAtPoint, но текст выводится.drawAtPoint не работает после преобразования из CGContextShowTextAtPoint

//Add text to UIImage 
    -(UIImage *)addText:(UIImage *)img text:(NSString *)text1{ 
     int w = 32; 
     int h = 32; 

     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
     CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedFirst); 
     CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage); 

     //char* text= (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding]; 
     CGContextSetTextDrawingMode(context, kCGTextFill); 
     CGContextSetRGBFillColor(context, 0, 0, 0, 1); 

    // CGContextSelectFont(context, "Montserrat-Regular",12, kCGEncodingMacRoman); 
    // CGContextShowTextAtPoint(context,9,12,text, strlen(text)); 
    // 
     [text1 drawAtPoint:CGPointMake(0, 0) withFont:[UIFont fontWithName:@"Montserrat-Regular" size:12]]; 

     CGImageRef imgCombined = CGBitmapContextCreateImage(context); 
     CGContextRelease(context); 
     CGColorSpaceRelease(colorSpace); 
     UIImage *retImage = [UIImage imageWithCGImage:imgCombined]; 
     CGImageRelease(imgCombined); 

     return retImage; 
    } 

ответ

1

хорошо получил это работает на

//Add text to UIImage 
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1 
{ 
    UIGraphicsBeginImageContext(CGSizeMake(36, 36)); 
    CGRect aRectangle = CGRectMake(0,0, 36.0f,36.0f); 
    [img drawInRect:aRectangle]; 

    [text1 drawInRect : CGRectMake(0, 10, 36, 36) 
      withFont : [UIFont fontWithName:@"Montserrat-Regular" size:12] 
     lineBreakMode : NSLineBreakByTruncatingTail 
      alignment : NSTextAlignmentCenter ]; 

    UIImage *theImage=UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return theImage; 


} 
Смежные вопросы