【问题标题】:iPad incorrect rendering of ObjectsiPad 对象渲染不正确
【发布时间】:2012-05-09 17:56:30
【问题描述】:

我们刚刚在办公室里设置了一大堆用于开发的 MacBook。据我所知,我们都设置了完全相同的计算机(仅安装 xcode,不更改任何设置)。我们甚至将完全相同的 xcode 项目分发给每个人,以测试每个人的设置是否正确。但出于某种原因,我的 iPad 模拟器错误地呈现了 UIView 控制器上对象的位置。 我可以制作一个非常基本的应用程序,并在 xcode 4.3.1(最新版本的 ATM)中使用情节提要编辑器敲击 UIView 控制器,并为其添加一个按钮。当我在模拟器上运行它时,它在 iPhone 上看起来不错,但是当我尝试在 iPad 中查看它时,似乎某些元素可以缩放到 iPad 分辨率,但其他元素不会。不存在的组件似乎位于它们在 iPhone 上呈现时的位置。 这个问题最奇怪的部分是我在网上找不到遇到同样问题的人。我已经尝试删除并重新安装 xcode,但仍然发生同样的事情。我担心我可能不得不重新安装操作系统并从头开始。

它在 iPhone 模拟器上的外观:

在 iPad 模拟器上:

【问题讨论】:

  • 我认为这不是 SDK 问题,我敢打赌您正在编写适合 iPhone 屏幕而不是更大 iPad 屏幕的代码。能否贴出代码和两张截图,一张用于 iPhone,一张用于 iPad 结果?
  • 就像我说的,它与办公室中其他人正在使用的完全相同的项目,我没有更改代码。真的,我想知道是什么导致了这种显示差异。我会看看我是否可以为你提供截图。我想我应该澄清一下,其他人都在我的办公室里正确渲染了它。
  • 添加了屏幕截图。很明显,它在两个模拟器的相同坐标处渲染按钮,而不是按比例放大。对于那些会抱怨图表存在的人,它仍然会在没有图表的情况下这样做。

标签: xcode macos ipad ios-simulator


【解决方案1】:

我认为这不是 SDK 问题,我敢打赌,您编写的代码适合 iPhone 屏幕而不是更大的 iPad 屏幕。

我认为您只添加了按钮并且 Autoresizing Mask 设置不正确。 我做了一些测量,似乎:

  • 到视图顶部的距离是固定的(~360px);
  • 宽度固定(~260px);

您需要让按钮与底部保持固定距离(因为它应该留在绘图下方)并移除左侧固定边距以便它可以居中。

您需要查看UIViewAutoresizingMaskUIViewautoresizingMask 属性。

button.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

【讨论】:

  • 你能给出一个如何使用这个 UIViewAutoresizingMask 属性的代码示例吗?这仍然不能回答为什么同一个项目在两台 Mac 上会以不同的方式显示。我正在寻找编辑器设置或其他东西来解释这一点。我尝试了多个项目并遇到了同样的问题。我可以从互联网上下载示例并遇到同样的问题。如果以这种方式设置按钮可以修复此实例,那就太好了,但是如果我打开一个巨大的项目并且必须更改所有对齐以使其正常工作,从长远来看,这不是一个可行的选择。
  • 您能否告诉我您是否仅在您的 Mac 上的副本上添加了圆形按钮?该按钮没有标题,所以我认为您只是添加了它。
  • 这很奇怪......我刚刚从我的工作场所重新导入了所有项目,它们渲染得很好。我不知道为什么他们以前都表现得很有趣,但现在它正在工作,idc。感谢您尝试提供帮助。而且我确信您对这个特定问题的解决方案会解决它,所以我会将其标记为已回答。
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多