【问题标题】:UI looks different on iOS 5 an iOS 4.3UI 在 iOS 5 和 iOS 4.3 上看起来不同
【发布时间】:2012-03-06 18:44:38
【问题描述】:

我的 vie 上有 UISwitch,从 xib 加载。它的 x 位置大于零,在 iOS 5 模拟器上看起来不错。但是当我尝试在 4.3 模拟器上运行它时,它看起来 UISwitch 的位置等于零

我的问题在哪里?

【问题讨论】:

    标签: iphone ios uiswitch


    【解决方案1】:

    除了外观上的变化,UISwitches 在 iOS 4 和 5 之间缩小了。根据快速截图比较,它们大约 94pt 宽,现在只有 76pt。因此,如果您有一个开关,例如,根据自动调整大小的掩码右对齐,那么它将在 4 中比在 5 中更向左延伸。

    遗憾的是,除了为 94pt 小部件设计并接受 5 点以下的一些额外空白空间之外,您几乎无能为力。因为界面构建器将所有东西都定位在精确的像素位置,而不是应用布局逻辑,所以非常可能您必须进行一些手动程序调整。

    【讨论】:

    • 我在 xib 中将所有 UISwitches 设置为固定顶部和左侧,但在 iOS 4 下,它们延伸到左侧并覆盖标签。我做错了什么?
    • 如果它们是固定的,那么我猜这是加载 NIB 的机制计算 iOS 5 大小的适当帧(基于 NIB 中的信息),将其设置为UISwitchs,iOS 4 中的开关对该帧进行了某种验证,导致它们调整宽度,但不确定如何处理原点。
    【解决方案2】:

    如果是ios 5的问题,可以根据iOS版本调整位置

         BOOL isIOS5 = [[[UIDevice currentDevice] systemVersion] intValue] >= 5;
    

    【讨论】:

    • 据我了解,没有办法在 xib 中做一些事情来做同样的事情?
    • 可能更聪明地查询连接到开关插座的对象的大小并据此进行调整,而不是(隐式)硬编码 4 和 5 的大小。所以你不会执行@ 987654322@ 完全检查,例如someSwitch.frame.size.width
    • @user564272 您应该真正学习如何以编程方式进行操作。它被称为编程是有原因的。
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多