【问题标题】:Make iPhone 5 Layout Completely Independent让 iPhone 5 布局完全独立
【发布时间】:2012-11-04 15:28:12
【问题描述】:

我正在为我的应用程序使用 Storyboard,并且正在尝试使其与 iPhone 5 兼容。但是,启用自动布局会搞砸一切 - 代码中的框架更改不起作用等等......有什么办法可以让 iPhone 5 布局完全独立于旧的 iPhone 4 及以下布局(比如为 iPhone 5 创建一个单独的故事板?

提前致谢!

【问题讨论】:

  • “代码中的框架更改不起作用等等” - 使用自动布局意味着使用约束来布局界面而不是框架更改。您无需描述每个对象的确切位置,而是描述对象之间的间距或对象如何相互对齐等内容。您绝对不能只打开自动布局的开关并期望旧的手动布局代码可以工作。它也必须更新。
  • @JonHess 是的,我意识到 - 这只是一个例子。无论如何,我最终决定使用自动布局,而是定义了一个宽度约束以供以后更改。现在完美运行。

标签: iphone ios xcode uistoryboard iphone-5


【解决方案1】:

如果您不想使用苹果提供的自动布局,您可以检查设备的屏幕尺寸。这是stackoverflow另一篇文章中的宏

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

使用该宏,您可以仅为 iPhone 5 构建一个单独的故事板,并在您的 AppDelegate 中使用它对其进行初始化

NSString *storyboardName;
if (IS_IPHONE_5)
    storyboardName = @"MainStoryboard_iPhone5";
else storyboardName = @"MainStoryboard_iPhone";
storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2012-10-22
    • 2016-05-04
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多