如何缩放视图的所有组件?

How to scale all components of an view?

是否有任何最佳方法可以根据设备屏幕尺寸缩放视图的所有组件(按钮、按钮标题、图像、所有层次结构 sub-views),例如 iPhone XS、iPhone XS 最大,iPhone X 等

实际上,我在 iOS 应用程序项目中有一些屏幕是针对特定 iPhone 设计的,所有限制都是固定的,所以我需要根据其他 iPhone 屏幕更改它们。

据我所知,我们可以通过以编程方式对比率和所有其他事物(如字体和图像缩放)应用一些约束来做到这一点,但我正在寻找一种对我来说更省力的最佳和简单的解决方案。

最简单的方法是在 UIStackViews 中组织视图并适当地设置堆栈视图,因此您不必太担心子视图

是的,你说得对,这可以通过屏幕比例来实现,就像我一年前所做的那样。让我告诉你,你如何做到这一点-

您需要根据屏幕比例缩放图像大小、文本字体大小以及每个视图的每个约束。

你有没有试过 ScalableLayoutKit 库,它是由我实现的,用于基于 design/source 屏幕设计可扩展、一致的 UI。

例如:- 假设您想根据 iPhone6 mock-up 设计一个登录屏幕,为此您创建一个 LoginViewController 并从 Storyboard 设计 UI。

使用 ScalableLayoutKit

class LoginViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()      
        // Here we just need to passed based or source design screen name only.
        // This method will recursively scale your all ui elements and its constraints too.
        view.scaledLayoutDesign(from: .iPhone6)
    }

}