0

两个 CALayers

我有两个 CALayer 子类的实例。

它们之间的唯一区别是这一行:

[self setTransform:CATransform3DMakeScale(2, 2, 2)];

我还需要什么才能使大图层在 2x 的比例下看起来不错?

PS:(为避免混淆)这些图层还包括一些控制按钮、阴影和圆角,以模仿窗口系统中窗口的外观,但这些不是 NSWindows 实例。

4

1 回答 1

1

简短的回答是,不要使用转换。变换通过放大图层来缩放图层,而无需重新渲染。

通过使用 CAShapeLayer 并对路径进行动画更改,您可以获得非常相似的效果。但是,这会给您带来清晰的渲染,因为它的路径动画确实会重新渲染像素。

我说“类似”效果是因为 CAShapeLayers 对整个图层使用 lineWidth 属性。您可以为值之间的线宽设置动画,并使用小数值,但您必须进行一些微调以使线宽与形状大小成比例地上下动画。另一个考虑是图形系统使用抗锯齿来绘制小数宽度路径,因此当线宽不是整数值时,它们看起来会略微柔和。您可以关闭抗锯齿,但它们看起来会非常锯齿。

于 2012-11-18T15:09:12.887 回答