上周我将 Lion 更新为 Mountain Lion,从那时起,iOS 模拟器上出现了这个非常奇怪的错误。第一张图片显示的是常规模拟器,第二张显示的是“Retina”模拟器。有谁知道如何解决这一问题?我尝试删除 Xcode 并重新安装,但没有运气。
普通模拟器:
视网膜模拟器:
提前感谢您的帮助!
编辑:这不是 iPad 模拟器。这是“设备”菜单的屏幕截图。
上周我将 Lion 更新为 Mountain Lion,从那时起,iOS 模拟器上出现了这个非常奇怪的错误。第一张图片显示的是常规模拟器,第二张显示的是“Retina”模拟器。有谁知道如何解决这一问题?我尝试删除 Xcode 并重新安装,但没有运气。
普通模拟器:
视网膜模拟器:
提前感谢您的帮助!
编辑:这不是 iPad 模拟器。这是“设备”菜单的屏幕截图。
我遇到了同样的问题,尝试更改您的mac上的显示分辨率。我使用的是 Retina Mac,所以不得不玩一下。
Xcode 确实为您提供了一个不同的视网膜模拟器,但看起来它们内置了逻辑以在一个模拟器中具有更高的分辨率。
这里最重要的症状是,如果它显示在标准分辨率的 iPhone 上,您的 UI 占用的空间量正是您所期望的。另一个重要的症状是你的 UILabel 看起来褪色的方式 - 这通常表明 UILabel 没有收到正确的屏幕比例,特别是在光栅化时。
当您在应用程序委托 (didFinishLaunchingWithOptions) 中初始化应用程序时,请检查您是否已将 UIWindow 或 rootViewController 的边界硬编码为标准 iphone 分辨率(即 320x480)。这些应该使用 [[UIScreen mainScreen] bounds] 设置,而不是硬编码到实际点。实际上,您应该在您的应用程序中寻找您对屏幕尺寸进行硬编码的任何地方——搜索字符串“320”和“480”——这些数字永远不应出现在您的代码中。
另一种可能性是您已将某些视图设置为光栅化(layer.shouldRasterize = YES),但您尚未将 layer.rasterizationScale 设置为主屏幕的比例(即 [[UIScreen mainScreen] scale],这将是2.0 在 Retina 上下文中)。当我没有正确设置比例时,我看到了同样的泥泞的 UILabel。
我认识到,由于您的帖子说此更改仅在您的操作系统更新后才发生,因此这些可能不是问题,但为了更加确定,我会检查它们。
更新:再三考虑,硬编码这些边界,这是不好的做法,不会导致这个问题,因为这些是 iPhone 的正确逻辑边界,并且操作系统可以为你扩展。因此,在这两个建议之间,更可能的罪魁祸首是某些与比例相关的属性设置不正确。另一种可能性是,如果您使用 UIView contentScaleFactor 并且设置不正确。
这是 iPad 模拟器。将其更改为 iPhone。
硬件->设备