iOS layer allowsEdgeAntialiasing 抗锯齿

 
 

http://www.jianshu.com/p/57e2ec17585b

再介绍一下edge antialiasing(抗锯齿) 这个吧. 因为之前自己也没接触过,很多人估计也是没接触过吧.

翻译:

是否允许执行反锯齿边缘。 默认的值是 NO.(不使用抗锯齿,也有人叫反锯齿),当 Value 为YES的时候, 在layer的 edgeAntialiasingMask属性layer依照这个值允许抗锯齿边缘,(参照这个值) 可以在info.plist里面开启这个属性.

0068582C-92E8-4A80-AAD8-C89E22668964.png

放一个 plist 常见的key值表 info.plist配置表 (楼主真的好...)

说了这么多. 那抗锯齿又是啥????

抗锯齿的概念 (随便看看.) 在我们iOS中表现 参考这里

    CALayer *layer = [CALayer layer]; 
    layer.position = CGPointMake(100, 100);
    layer.bounds = CGRectMake(0,0, 100, 100);
    layer.backgroundColor = [UIColor redColor].CGColor;
    //layer.allowsEdgeAntialiasing = YES;
    [self.view.layer addSublayer:layer];

正常添加layer 在view上是这样的.


下一步.

 CGFloat angle = M_PI / 30.0;
[layer setTransform:CATransform3DRotate(layer.transform, angle, 0.0, 0.0, 1.0)];

在模拟器表现是这样的.


如果 layer.allowsEdgeAntialiasing = YES;

--- 在模拟器上是


--- 在真机上.


可见真机效果跟模拟器还是有差距的,(模拟器边缘比真机模糊,)官方文档也有提到这点

Use antialiasing when drawing a layer that is not aligned to pixel boundaries. This option allows for more sophisticated rendering in the simulator but can have a noticeable impact on performance.

这是UIView的抗锯齿,在模拟器上还是有性能的消耗的.

猜你喜欢

转载自blog.csdn.net/jeffasd/article/details/78674968