Ios 在UIView中图像上方的drawrect()中绘制线

Ios 在UIView中图像上方的drawrect()中绘制线,ios,xcode,uiview,layer,drawrect,Ios,Xcode,Uiview,Layer,Drawrect,我试着从一个数组中画线(就像在绘画中),在这个区域下面是一个可见的图像,一种背景: override func drawRect(rect: CGRect) {... for line in fetchedResults { CGContextSetLineWidth(context, line.widt as CGFloat) CGContextMoveToPoint(context, CGFloat(line.startx), CGFloat(line.st

我试着从一个数组中画线(就像在绘画中),在这个区域下面是一个可见的图像,一种背景:

override func drawRect(rect: CGRect) {...  for line in fetchedResults {
        CGContextSetLineWidth(context, line.widt as CGFloat)
        CGContextMoveToPoint(context, CGFloat(line.startx), CGFloat(line.starty))
        CGContextAddLineToPoint(context, CGFloat(line.endx), CGFloat(line.endy))
        CGContextSetStrokeColorWithColor(context, line.color.CGColor)
        CGContextStrokePath(context)
    }
}

当然,可以在绘制线条之前绘制图像,但这意味着每次更改线条阵列(例如,用户绘制smth)时,图像都会用线条重新绘制,这需要很多时间


是否可以在drawrect()下绘制一些静态图层,只有在需要时才重新绘制?

将背景和图形添加为两个不同的图层。每次更改线阵列时,都必须重新绘制带有线的上层,但添加图层会使其静态。我想您不明白我写的内容。不要在保存背景图像的同一类中绘制这些线条。您可以使用UIView作为工作环境。UIView*lineView=[[UIView alloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,0.5)];。我同意它的工作原理,但很简单。迈克,你是说创建两个UIView,一个用于线条,一个用于背景图像?如果是,要么就看不到,要么就必须使uiview的线条透明,这是不好的