【问题标题】:UISwitch control shifted in iPad 4.3 SimulatorUISwitch 控件在 iPad 4.3 模拟器中转移
【发布时间】:2011-12-11 02:09:31
【问题描述】:

我在 iPad 5.0 下使用 UISwitch 控件,一切正常。但是,如果我在 iPad 4.3 下运行该应用程序,该控件会向左移动。

在此示例中,两个控件具有相同的自动调整大小掩码和内容模式。
部署目标:4.3
基础 SDK 5.0

有人可以解释我的问题。

【问题讨论】:

  • 您能否添加将其添加到您的应用的方式和时间以及您的 UISwitch 的不同设置。
  • 对于这个示例,我添加了 Interface Builder 中的控件,并且没有触及任何设置。

标签: ios ipad uikit


【解决方案1】:

嗯,它不漂亮......两个 UISwitch 的宽度都不一样。
我用这段代码来尝试一些东西:

CGRect aRect = self.mySwitch.frame;
aRect.origin.x = 20;
aRect.origin.y = 20;
self.mySwitch.frame = aRect;

这给了我在两个模拟器中的正确位置。
所以这解释了,但是如何在没有那段丑陋的代码的情况下解决这个问题。


这是我在 NSLog 中返回的 center 和 origin 的值。

ipad iOS 5
LOG: Center of sw1 x == 60 : y == 33.50
LOG: Origin of sw1 x == 20 : y == 20.00
ipad iOS 4.3
LOG: Center of sw1 x == 52 : y == 33.50
LOG: Origin of sw1 x ==  5 : y == 20.00

也许 Apple 的代码是这样编写的,因此在 iOS 5 之前开发的应用程序可以正确显示它的开关,但反之则不正确...
希望能看到更好的解释。

【讨论】:

  • 是的,我发现 iOS 4.3 和 iOS 5.0 中控件的宽度不同。但是为什么不向后兼容呢?而且我还没有发现其他人讨论过这个问题。
  • 我也有这个问题。我不知道为什么开关是右对齐的,即使我在 xib 中将它们设置为固定的顶部和左侧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多