【发布时间】:2016-12-19 18:04:00
【问题描述】:
我通过创建圆形NSBezierPath 并将其添加到图形上下文的剪切区域中,在自定义视图的中心绘制圆形图像。这工作得很好,但我想知道是否可以提高绘制视图背景(圆形居中图像之外的区域)但反转此剪辑并执行背景绘制(NSGradient 填充)的性能。
谁能建议一种反转剪辑路径的方法?
【问题讨论】:
标签: cocoa nsview clip nsbezierpath
我通过创建圆形NSBezierPath 并将其添加到图形上下文的剪切区域中,在自定义视图的中心绘制圆形图像。这工作得很好,但我想知道是否可以提高绘制视图背景(圆形居中图像之外的区域)但反转此剪辑并执行背景绘制(NSGradient 填充)的性能。
谁能建议一种反转剪辑路径的方法?
【问题讨论】:
标签: cocoa nsview clip nsbezierpath
这样做不会提高背景的绘制性能。如果有的话,使用更复杂的剪切路径会减慢绘图速度。
如果你想在背景上绘制对象而不需要重绘背景的大量开销,你可以使用核心动画层,正如我在 my answer to this question. 中解释的那样
【讨论】:
dirtyRect 不完全在我的图像中的时候,我也会查看CALayer。
无论性能如何,当您尝试反转剪辑时,首先会出现这个问题。
因此,如果您正在寻找的是: Using NSBezierPath addClip - How to invert clip
【讨论】: