这是代码
- (voID)drawRect:(CGRect)rect { context = UIGraphicsGetCurrentContext(); [[UIcolor graycolor] setFill]; [[UIcolor greencolor] setstroke]; UIBezIErPath *aPath = [[UIBezIErPath alloc] init]; [aPath movetoPoint:CGPointMake(227,34.25)]; [aPath addlinetoPoint:CGPointMake(298.25,34.75)]; [aPath addlinetoPoint:CGPointMake(298.5,82.5)]; [aPath addlinetoPoint:CGPointMake(251,83)]; [aPath addlinetoPoint:CGPointMake(251,67.5)]; [aPath addlinetoPoint:CGPointMake(227.25,66.75)]; [aPath closePath]; aPath.linewidth = 2; [aPath fill]; [aPath stroke]; UIBezIErPath* aPath2 = [[UIBezIErPath alloc] init]; [aPath2 movetoPoint:CGPointMake(251.25,90.5)]; [aPath2 addlinetoPoint:CGPointMake(250.75,83.25)]; [aPath2 addlinetoPoint:CGPointMake(298.5,83)]; [aPath2 addlinetoPoint:CGPointMake(298.5,90.25)]; [aPath2 closePath]; aPath2.linewidth = 2; [aPath2 fill]; [aPath2 stroke]; [paths addobject:aPath2];
问题是笔画和填充颜色是在当前上下文中设置的.
在同一个CGContextRef中可以用不同的颜色绘制不同的UIBezIErPath吗?
或者我必须在单独的uivIEw中绘制每个UIBezIErPath?
解决方法 你应该添加[desiredstrokecolor setstroke];[desiredFillcolor setFill];
表明这些是在这种情况下必须进一步使用的新颜色.你每次打电话之前都应该这样做
[aNewPath fill];[aNewPath stroke];
以便用这些颜色绘制路径.
不需要为每个贝塞尔路径使用新的视图.
总结以上是内存溢出为你收集整理的ios – 如何在UIView中绘制不同颜色的多个UIBezierPath全部内容,希望文章能够帮你解决ios – 如何在UIView中绘制不同颜色的多个UIBezierPath所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)