Ios 同一图像的慢速绘制
我有一个从Ios 同一图像的慢速绘制,ios,performance,uiview,uiimageview,core-graphics,Ios,Performance,Uiview,Uiimageview,Core Graphics,我有一个从UIView继承的自定义视图 在这个视图中,有一个图像总是一样的,我只想在上面画 但是,为了绘制图像,我必须在每次绘制循环运行时调用drawInRect - (void)drawRect:(CGRect)rect{ CGContextRef context = UIGraphicsGetCurrentContext(); [image drawInRect:self.bounds]; // drawing.... } 是否有一种方法可以显示图像,而不是每次调
UIView
继承的自定义视图
在这个视图中,有一个图像总是一样的,我只想在上面画
但是,为了绘制图像,我必须在每次绘制循环运行时调用drawInRect
- (void)drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
[image drawInRect:self.bounds];
// drawing....
}
是否有一种方法可以显示图像,而不是每次调用drawRect
时都调用此方法
谢谢。在自定义类的.h文件中执行以下操作:
- (void) setup:
然后在.m中执行以下操作:
-(void) setup {
//drawing stuff
}
然后在视图中加载添加为子视图的任何视图控制器
[myCustomView setup];
将图像放在自定义
ui视图下的ui图像视图中,而不是在drawRect:
中绘制。使自定义视图的背景色clearColor
,以便图像通过wheredrawRect:
显示,而不绘制任何内容
不要试图使图像视图成为自定义视图的子视图。子视图总是在其superview内容的顶部绘制。您可以将自定义视图设置为图像视图的子视图,也可以将它们设置为兄弟视图。我担心这不起作用,因为每次调用drawRect:时它都是不相关的。如果实现正确,此方法将起作用,但如果希望使用draw react,另一个解决方案是在该类中创建bool,如bool didDrawOnce。你可以把它放在.h或.m中。然后在draw rect中:if(didDrawOnce==no){do drawing,然后didDrawOnce=yes;}。这样你只在第一次点击draw rect时才开始画图,但我希望画图是持久的。如果我只调用它一次,下次调用DrawRect时它将不会绘制图像。我想我不完全理解您试图实现的目标,为什么不告诉我您通过这样做尝试实现的具体内容,以便我可以提供一个适合它的解决方案。这非常聪明,谢谢。