慢drawInRect与相同的图像

时间:2012-12-01 15:50:34

标签: ios performance uiview uiimageview core-graphics

我有一个继承自UIView的自定义视图。

在这个视图中,有一个图像始终是相同的,我只想绘制它。

但是,为了绘制图像,我必须在每次绘制周期运行时调用drawInRect

- (void)drawRect:(CGRect)rect{
    CGContextRef context = UIGraphicsGetCurrentContext();

    [image drawInRect:self.bounds];
    // drawing....
}

有没有办法显示图片,而不是每次调用drawRect时都调用此方法?

谢谢。

2 个答案:

答案 0 :(得分:2)

将图片放在自定义UIImageView下面的UIView下,而不是在drawRect:中绘制。制作自定义视图的背景颜色clearColor,以便图片显示drawRect:无法绘制任何内容的位置。

请勿尝试将图片视图设为自定义视图的子视图。子视图总是在其superview的内容之上。您可以将自定义视图设置为图像视图的子视图,也可以使它们成为兄弟姐妹。

答案 1 :(得分:-1)

在自定义类的.h文件中执行以下操作:

- (void)  setup:

然后在.m中执行此操作:

-(void) setup {
    //drawing stuff
}

然后在视图中加载任何将其添加为子视图的视图控制器

[myCustomView setup];