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

时间:2018-10-18 14:42:05

标签: ios uikit ios-autolayout iphone-x ios-universal-app

是否有最佳方法来根据设备屏幕尺寸(例如iPhone XS,iPhone XS Max,iPhone X等)缩放视图的所有组件(按钮,按钮标题,图像及其所有层次结构子视图)。

实际上,我在iOS应用程序项目中有一些屏幕是在特定iPhone上设计的,所有限制条件都是固定的,因此我需要根据其他iPhone屏幕进行更改。

据我所知,我们可以通过以编程方式应用比率约束以及字体和图像缩放等所有其他内容来实现此目的,但我正在寻找一种最省力,最简单的解决方案。

2 个答案:

答案 0 :(得分:2)

是的,您是对的,可以像我一年前一样通过屏幕比例来实现。让我告诉你,你怎么做-

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

您是否曾经尝试过ScalableLayoutKit库,该库由我实现,可以根据设计/源屏幕设计可扩展的,一致的UI。

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

使用ExpandableLayoutKit

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)
    }

}

答案 1 :(得分:0)

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