我已经将UILabel子类化了,我使用drawrect方法在屏幕上绘制字符串。这是我的代码:
- (void)drawRect:(CGRect)rect
{
CGRect aRect = self.frame;
NSMutableArray *Text=[globaltextarray Text];
[[NSString stringWithCString:[[Text objectAtIndex:labelindexpath.row] cStringUsingEncoding:NSISOLatin1StringEncoding] encoding:NSUTF8StringEncoding] drawInRect:aRect
withFont:[UIFont fontWithName:@"Times New Roman" size:15.0] lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentLeft];
[super drawRect:rect];
}
工作正常,但我的目的很慢。我需要在不使用[Label setNeedDisplay];
的情况下绘制字符串,因为需要从主线程调用setNeedsDisplay。渲染工作需要在后台队列中完成。如果你能给我一个小例子,我将不胜感激。任何帮助赞赏。
感谢。
答案 0 :(得分:0)
您可以创建一个新的 CGContext ,在单独的线程上使用 CGBitmapContextCreateImage 将字符串绘制到CGImage / UIImage中,然后将位图(生成的图像)绘制到主视图中线程。
修改强> 例如,请检查此post。