我有以下子视图,我想在屏幕上水平居中并手动设置垂直距离。
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
之前可能未设置视图控制器的视图框架。