首页 > 解决方案 > 以自定义垂直距离水平居中子视图 | 迅速

问题描述

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

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

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

标签: swift

解决方案


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

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


推荐阅读