如何在嵌套的子视图上绘制CGContextDrawPath?

时间:2016-08-25 03:47:17

标签: ios core-graphics

我是Apple iOS编程中context概念的新手。目前,我正在考虑views。我想用尽可能最简单的方法绘制弧,然后我找到了这个question and answer。但后来我对语境概念感到困惑。我想画一些东西,我需要调用绘图函数并提供view我希望绘图函数绘制的位置。但在那里,我对UIGraphicsGetCurrentContext()感到困惑。那“当前的背景”是什么?是UIScreen.mainScreen()吗?如果我想将“当前上下文”设置为UICollectionViewCell内的视图,以便绘制的所有像素都相对于视图?我能这样做吗?

1 个答案:

答案 0 :(得分:1)

在CocoaTouch中绘制的方式是将UIView子类化为创建自定义视图并实现drawRect:(CGRect)rect方法。将您的绘图代码放在drawRect中。类似的东西:

-(void)drawRect:(CGRect)rect {
   CGContextRef context = UIGraphicsGetCurrentContext();
   CGPathRef path = CGPathCreateWithRect(rect, NULL);
   [[UIColor blueColor] setStroke];
   CGContextSetLineWidth(context, 4.0);
   CGContextAddPath(context, path);
   CGContextDrawPath(context, kCGPathFillStroke);
   CGPathRelease(path);
 }

如果需要,可以将自定义UIView放在UICollectionViewCell中。