【问题标题】:UIView subclass itself gets pixelated in retinaUIView 子类本身在视网膜中像素化
【发布时间】:2013-02-01 10:07:12
【问题描述】:

我有一个 UIView 子类,它在需要时加载到 UIViewController 中。此视图在 iPhone 3/4/5 中运行良好,或者看起来运行良好。它在 iPad 1/2 中看起来也不错。但是对于 iPad 的视网膜屏幕,视图是像素化的。所有的标签、按钮、视图背景、文本都是像素化的。

之前我没有重写 drawRect 方法。但是有了其他一些 SO 提示,我做到了。但是还是没有解决问题。

任何想法,视网膜显示的问题在哪里?

【问题讨论】:

  • 你是否也看到了内置字体?
  • 是的,uitextfield 中的字体、按钮标签、文本占位符……似乎整个视图都被拉伸为图像!

标签: ipad uiview retina-display


【解决方案1】:

好的,我发现问题了。

视图使用一种嵌套视图,其中一个视图层被操作并调用

layer.shouldRasterize = YES;

但如果我添加这一行,就可以解决问题。

layer.rasterizationScale = [UIScreen mainScreen].scale;

在苹果 WWDC 2012 中,他们有一个关于此的视频。 “抛光你的界面旋转”。他们在这里讨论了这个问题。 https://developer.apple.com/videos/wwdc/2012/

【讨论】:

  • 好发现!我在整个应用程序中的许多视图上都遇到了同样的问题,并且正在将视图框架打印到日志中,期望找到分数来源或其他东西。这让我摆脱了很多白发,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多