【问题标题】:"Renders with edge antialiasing" causes delay in UIAlertView in iOS 7“使用边缘抗锯齿渲染”导致 iOS 7 中 UIAlertView 出现延迟
【发布时间】:2013-11-13 17:13:14
【问题描述】:

从 iOS 7 开始,我注意到我的 UIAlertViews 显示有一种绘图延迟 - 发生的情况是屏幕变暗,并且 UIAlertView 的文本在警报视图的实际框架出现之前出现在屏幕上仅一瞬间。

我发现问题是由于我的应用程序 plist 文件中的“使用边缘抗锯齿渲染”标志设置为 YES 造成的。关闭它可以解决问题(但是我在任何旋转视图上都有难看的锯齿,这是我首先使用该标志来解决的问题)。

有谁知道我怎样才能把蛋糕也吃掉?即具有边缘抗锯齿以及平滑的 UIAlertViews。

编辑:在高层次上,似乎能够动态切换“UIViewEdgeAntialiasing”就可以做到这一点。或者,如果有一种方法可以直接使用抗锯齿旋转 UIView。这些都可能吗?

【问题讨论】:

  • 不知道为什么这被否决了,但它显然是一个 iOS 错误,并希望有一个优雅的解决方案。无论如何,在 Bug Reporter 中提交。
  • 我在我的一个应用程序中遇到了同样的问题。即使在一个小型测试应用程序中也是如此。想知道是否有人打开了这个标志而不是同样的问题?

标签: ios objective-c ios7 uialertview antialiasing


【解决方案1】:

“使用边缘抗锯齿渲染”非常昂贵!谨慎使用。

改用这个小技巧:

    view.layer.borderWidth = 1;
    view.layer.borderColor = [UIColor clearColor].CGColor;
    view.layer.rasterizationScale = [UIScreen mainScreen].scale;
    view.layer.shouldRasterize = YES;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多