我编写了一个接口“myDrawInRect”来替换 NSString 中的原始“drawInRect”。
代码如下:
.h 文件:
@interface NSString(TextDrawing)
-(CGSize) myDrawInRect:(CGRect)rect withFont:(UIFont *)font textColor:(UIColor*)textColor
lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment)alignment;
@end
.m 文件:
@interface NSString(TextDrawing)
-(CGSize) myDrawInRect:(CGRect)rect withFont:(UIFont *)font textColor:(UIColor*)textColor
lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment)alignment
{
CGFloat screen_scale = [UIScreen mainScreen].scale;
CGContextRef bitmapContext = CreateBitmapContext( rect.size.width * screen_scale, rect.size.height * screen_scale );
/* ... some code to draw the bitmapContext; */
CGImageRef image = CGBitmapContextCreateImage( bitmapContext );
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM( context, 1.0f, -1.0f );
CGContextTranslateCTM( context, 0.0f, -CGRectGetHeight(realRect) );
CGContextDrawImage( context, rect, image );
CGContextRelease( bitmapContext );
CGImageRelease( myImage );
}
@end
我在 UILabel drawInRect 中调用了 myDrawInRect,但在标签上我什么也看不到。任何人都可以建议吗?谢谢!