objective-c - View Controller 没有显示在 iphone-6 和 iPhone 6 plus 的整个屏幕上(在 Swift 和 Objective-c 中)

标签 objective-c iphone xcode swift ios8

我现在遇到的奇怪错误: 如果我在应用程序中禁用自动布局并尝试处理启动屏幕,那么就会出现奇怪的错误:

第 1 步:

  • 如果我只为 LaunchImage 设置适用于 iOS-7 及更高版本的应用程序,那么一切 工作正常。但问题是我们无法设置 LaunchImage 屏幕 对于 iPhone- 6 和 iPhone 6 +(在这种情况下,将显示 1136 尺寸的图像 作为 iPhone 6 和 iPhone 6+ 的启动)
  • iPhone 5 及以上版本的窗口大小显示为 320*568(适用于 iPhone5.5s、6 和 6+)。

第 2 步:

  • 如果我也为 iOS-8 及更高版本的 LaunchImage 启用应用程序并为 iPhone 6 和 6+ 设置启动画面,则启动画面工作正常。但是启动窗口大小现在将根据设备屏幕大小更改显示。由于这个原因,所有 View Controller 都没有显示在整个屏幕中,因为 View Controller 大小仍然显示 320*480

谁能告诉我为什么会出现这个奇怪的问题以及相关的解决方案。

同样的问题也出现在 swift 编程中。

最佳答案

这不是什么奇怪的问题。只需在 veiwDidLoad 中设置 View 的背景颜色,例如 self.view.backgroundcolor = [UIColor redColor];,您会注意到您的 viewController 正在使用全屏,但其他控件不是正在调整大小。

只需使用自动布局

Auto Layout is a system that lets you lay out your app’s user interface by creating a mathematical description of the relationships between the elements. You define these relationships in terms of constraints either on individual elements, or between sets of elements. Using Auto Layout, you can create a dynamic and versatile interface that responds appropriately to changes in screen size, device orientation, and localization.

可以查看documentation

Here是最好的教程。

更新:


我不建议使用自动调整大小

但你仍然想在没有 autoLayout 的情况下进行,你必须使用自动调整大小。

您没有任何其他选择

要用户自动调整大小,请使用本教程:Handling Layout Changes Automatically Using Autoresizing Rules


希望这对你有帮助......

关于objective-c - View Controller 没有显示在 iphone-6 和 iPhone 6 plus 的整个屏幕上(在 Swift 和 Objective-c 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31201505/

相关文章:

xcode - 快速迭代不起作用

iphone - 一些 xcode 项目中的 xx.bundle 目录

objective-c - NSSplitView 的不一致状态

objective-c - 为什么这不会崩溃?我这里不是除以零吗?

iphone - iPhone 上的同步 NSURLConnection 线程

ios - 如何使用动画创建新节并将行移动到该节

ios - 多次点击 UIButton 多次触发 Target 函数

iphone - UITabBarController 的 iOS 7 状态栏问题

ios - swift3 日期到数据,数据到日期转换

iphone - 如何在 UITableViewController 中显示 MSMutableArray 数据?