ios - 为什么在 iPhone 4、5、6 中横向压缩宽度和压缩高度

标签 ios iphone size-classes adaptive-user-interfaces

我是 iOS 开发的新手,刚开始学习适应性和布局,我有点困惑,

根据 Documentation

iOS 定义了两个尺寸等级:

  1. 常规:- 它与广阔的空间相关联
  2. 紧凑:- 它与受限空间相关

通过其他引用:

  1. 所有纵向的 iPhone(左上角)都具有常规的高度和紧凑的宽度,例如 Iphone in portrait

  2. 横向的 Iphone 4、5 和 6 具有紧凑的高度和紧凑的宽度。 iphones in landscape orientation

  3. 但在 iPhone 6 Plus 的情况下,它具有紧凑的高度和正常的横向宽度。

Iphone 6 plush in landscape

我的困惑是:

  • iPhone 4、5、6 在纵向模式下具有规则的高度和紧凑的宽度,但为什么它们在横向模式下没有规则的宽度和紧凑的高度,因为它是相反的?
  • 如果是这样,那么为什么 iPhone 6 plus 与它们不同?是因为它的屏幕比 iPhone 6 大 0.8 英寸吗?这有关系吗?

提前致谢!热烈欢迎编辑!

我知道这在技术上不会影响目前的开发,但我只是想让我的头脑清楚这些事情。

最佳答案

If so then why iPhone 6 plus is differ from them ? Is it because it's screen is 0.8" bigger then iPhone 6 ? Does it matters ?

当您使用 Split View Controller 时,这很重要。当它在 iPhone 5 和 6 上具有相同的折叠外观时,它将在 iPhone 6+ 上横向拆分并并排显示主视图 Controller 和细节 View Controller 。

Size class illustration

它在 iPad 上看起来更没用,因为它在纵向横向上都有常规的高度和宽度尺寸类。

重点是,当您使用常规尺寸类时,您应该布局和显示比紧凑尺寸类更多的内容。

然而,大小类与屏幕无关,而是与 View Controller 相关。

当您的 iPad 带有主视图 Controller 和细节 View Controller 时,主视图 Controller 具有紧凑的宽度/常规高度,而细节 View Controller 具有常规宽度/常规高度。

您仍然可以通过覆盖它们来更改 subview Controller 的大小类

-(void)setOverrideTraitCollection:(UITraitCollection *)collection forChildViewController:(UIViewController *)childViewController

-(UITraitCollection *)overrideTraitCollectionForChildViewController:(UIViewController *)childViewController.

这是 iPad 的一个关键概念,因为您现在可以在 iOS9 上使用新的多任务功能(从屏幕右侧滑动)让您的应用程序以紧凑宽度运行 em>.

关于ios - 为什么在 iPhone 4、5、6 中横向压缩宽度和压缩高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34986078/

相关文章:

ios - 如何在 ios 中的同一个 Nsmutablearray 中存储旧值和新值

ios - iPhone 应用程序中的 Skydrive 登录崩溃

ios - 我可以直接从具有特定大小类或特征集合的 xib 加载 UITableViewCell 吗?

iphone - 在 Xcode 6、iOS 8 中使用 Size 类设计 ViewController

iphone - 将对象序列化为JSON

ios - 快速检测屏幕上任何地方的触摸

objective-c - iOS:处理 didSelectViewController 时的警告

ios - 有没有办法以编程方式注销推送通知设备?

c# - iPhone 应用程序 InputAccessoryView 未出现在 iPad 上

ios - ipad 和 iphone 的自适应大小类解决方案