Objective c 使用石英绘制/移动文本的最佳实践是什么?
我是Iphone开发的新手,我想实现一个简单的应用程序,一些文本可以在视图中显示和移动。因此,我使用以下代码来实现主循环:Objective c 使用石英绘制/移动文本的最佳实践是什么?,objective-c,object,text,drawing,quartz-graphics,Objective C,Object,Text,Drawing,Quartz Graphics,我是Iphone开发的新手,我想实现一个简单的应用程序,一些文本可以在视图中显示和移动。因此,我使用以下代码来实现主循环: - (id)initWithCoder:(NSCoder*)coder { [NSTimerscheduledTimerWithTimeInterval:(NSTimeInterval)((1.0 / 30.0)) target:selfselector:@selector(mainLoop) userInfo:nilrepeats:TRUE]; } -
- (id)initWithCoder:(NSCoder*)coder {
[NSTimerscheduledTimerWithTimeInterval:(NSTimeInterval)((1.0 / 30.0))
target:selfselector:@selector(mainLoop) userInfo:nilrepeats:TRUE];
}
-(void) mainLoop {
// Do some updates
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
// Draw many strings like this ...
UILabel *label = [[UILabel alloc] init];
label.textColor = color;
label.font = font;
label.text = character;
CGRect rect = CGRectMake(posX, posY, width, height);
[label drawTextInRect:rect];
}
但是当屏幕上有超过100个文本时,屏幕刷新将缓慢且不平滑。我想知道我画画的方式是否正确?我在网上搜索了很多文件,但没有找到答案。我找到了许多根据上下文绘制文本的方法,但我不知道应该遵循哪种方法。一件事是,我需要使用UILabel,因为我需要设置颜色。
我的代码有问题吗?我应该使用子视图进行绘制,然后将子视图添加到主视图中吗?还是应该使用CGLayer?有谁能告诉我这种计划的最佳实践是什么?谢谢 我已经找到了答案,我使用了NSString:drawInRect而不是UILable:drawTextInRect:
-(void)drawRect:(CGRect)rect
{
// Draw many strings like this ...
CGContextSetRGBFillColor (context, 1.0, 1.0, 1.0, 0.5);
CGRect rect = CGRectMake(x, y, [self getSizeX], [self getSizeY]);
[character drawInRect:rect withFont:[UIFont fontWithName:@"Courier" size:fontSize]];
}