以自定义垂直距离水平居中子视图|斯威夫特

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以自定义垂直距离水平居中子视图|斯威夫特相关的知识,希望对你有一定的参考价值。

我有以下子视图,我想在屏幕上水平居中并手动设置垂直距离。

    let customImageView = AnimationView(name: "image")
    customImageView.frame = CGRect(x: -140, y: 40, width: 700, height: 700)
    customImageView.contentMode = .scaleAspectFill
    self.view.addSubview(customImageView)

如果手机的屏幕尺寸较小,可以确保设置的垂直距离会得到考虑。

答案

这听起来像是自动布局(https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/index.html)的工作,这是Apple的基于约束的系统,专门针对与其他视图和屏幕尺寸相关的视图动态尺寸而制作。在您的情况下,可以在视图和子视图的顶部设置大于/小于约束,以便在屏幕较大/较小的情况下,它至少具有一定的间距,并且可以选择增大。

[如果您仍要进行基于框架的布局(例如,创建CGRect /框架),则必须根据view.frame.size.height值自己进行数学计算。请注意,在调用viewDidLayoutSubviews之前可能未设置视图控制器的视图框架。

以上是关于以自定义垂直距离水平居中子视图|斯威夫特的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局垂直居中子视图

-水平居中垂直居中水平垂直居中

绝对定位情况下水平垂直居中小技巧

如何在堆栈中垂直或水平居中小部件?

移动端利用-webkit-box水平垂直居中

CSS水平居中+垂直居中+水平/垂直居中的方法总结