-2

我已经搜索过,但仍然无法让我的应用程序以肖像模式适合所有 iPhone 尺寸,从 iPhone 4 到目前最大尺寸的 iPhone。

让我的应用程序在纵向模式下适合所有尺寸的 iPhone 的最佳方法是什么?

我创建了 iPhone Xs 大小的应用程序。我该怎么做才能让我的应用程序适合 iPhone 4 及更高版本的所有 iPhone 尺寸?

4

3 回答 3

2

实现这一点的唯一方法是使所有内容在宽度和高度方面成比例,因此您必须忘记设置静态值,另一种方法是使内容可滚动并设置您需要的任何宽度/高度,我也建议使用 iphone 5/4 进行布局,让您靠近剪辑设备,以便您更好地构建设计,并确保它可以在大型设备中正确缩放,一些关键项目需要寻找

自动布局

自适应自动布局

安全区域布局指南

如果您面对复杂的计算将约束拖动为出口并在代码中调整它,也可以随意

于 2018-11-19T23:03:46.917 回答
1

您应该阅读 iOS Auto Layout。它具有所有功能,但学习曲线陡峭。一旦你掌握了这些原则,一切都会自动开始工作(除了一些错误)。

此外,为了适应不同的 iPhone 屏幕尺寸,您应该使用布局边距指南来确保更大的 iPhone 具有更大的边距,反之亦然。

由于 iPhone X 和更新的 iPhone 有其他显示比例,如果你的 UI 不是所有列表或基本内容,你可能想在代码中做一些特别的事情。

于 2018-11-19T23:03:33.273 回答
1

通常,缩放 UI 以适应多种设备的最佳方式是使用Auto Layout。您无需使用固定帧大小定义接口,而是使用基于设备在运行时计算帧的约束。

可以在 Interface Builder 中添加约束,方法是按住 Ctrl 键从一个视图组件拖动到另一个视图组件,然后使用属性检查器进行微调。

否则,如果您愿意,可以在代码中创建和应用约束:

override func viewDidLoad() {
    super.viewDidLoad()

    let myView = UIView()
    myView.backgroundColor = .red
    myView.translatesAutoresizingMaskIntoConstraints = false

    view.addSubview(myView)

    NSLayoutConstraint.activate([
        myView.widthAnchor.constraint(equalToConstant: 50),
        myView.heightAnchor.constraint(equalToConstant: 50),
        myView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        myView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
    ])
}

上面的示例将在屏幕中心添加一个红色框,无论设备屏幕大小如何。

自动布局示例

于 2018-11-19T23:04:43.577 回答