iPhone SDK问题:我正在屏幕上绘制UIImageView。我已经用3D旋转并提供了一些透视图,因此图像看起来像是以一定角度指向屏幕。一切正常。现在问题是结果图像的边缘似乎根本没有抗锯齿。有人知道怎么做吗?
基本上,我正在使用石英三维变换实现我自己的CoverFlow版本(是的,设计专利等等)。它工作正常,除了每个封面都没有抗锯齿,而苹果版本是。
我已经尝试过使用CALayer的edgeAntialisingMask,但这没有帮助 - 默认是每个边缘应该是抗锯齿的......
谢谢!
答案 0 :(得分:19)
如果只旋转一个图像,则只有一个技巧可以解决问题。尝试设置
layer.shadowOpacity = 0.01;
在3D旋转后,图片看起来会更平滑
答案 1 :(得分:7)
Gloomcore的回答给出了非常好的结果。
然而,这有时让事情真的很糟糕! 添加光栅化有点帮助:.layer.shadowOpacity = 0.01;
.layer.shouldRasterize = YES;
我知道问题/答案是陈旧的,但是我发现了它。
答案 2 :(得分:2)
您可以尝试在图像边缘周围添加一些透明像素,方法是将UIImageView放在稍微大一点的空视图中,或者通过更改源图像。
答案 3 :(得分:0)
我有一个类似的问题只通过设置shouldRasterize = YES来解决,但是因为我重新使用了我的视图(和图层),所以shouldRasterize = YES杀死了性能。
幸运的是,我找到了一个解决方案,在适当的时候转动shouldRasterize = NO来恢复我应用程序中的性能。
我在这里发布了一个解决方案:Antialiasing edges of UIView after transformation using CALayer's transform
答案 4 :(得分:0)
你可以试试这个
方法:使用layer.shouldRasterize
superlayer
/ superview
,它在所有4个方向上都大1个像素superlayer
/ superview
layer.shouldRasterize
/ layer
view
醇>
方法:绘制到UIImage
参考:http://darknoon.com/2012/05/18/the-transparent-border-trick/