self.view 有限制吗?

0 constraints frame ios autolayout

self.view 在 ViewController 上。它有什么限制吗?我发现它有一个顶部和一个左侧约束。它肯定有一个框架。自动布局系统从 self.view 开始。我的意思是在 self.view 之前,iOS 系统仍在使用框架来定位视图。之后,我们的视图可以通过自动布局添加。所以在视图控制器中,我使用 self.frame.size.width 作为我自己视图的宽度约束是正确的做法吗?我对吗?

Anj*_*hah 7

使用SCREEN_WIDTH并且很容易获得您的设备大小并正确管理您自己的视图:

let SCREEN_WIDTH : CGFloat = UIScreen.main.bounds.width
let SCREEN_HEIGHT : CGFloat = UIScreen.main.bounds.height
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以参考:链接

示例: 您应该以编程方式添加自己的新视图。

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    let SCREEN_WIDTH : CGFloat = UIScreen.main.bounds.width
    let SCREEN_HEIGHT : CGFloat = UIScreen.main.bounds.height

    let newView = UIView()
    newView.translatesAutoresizingMaskIntoConstraints = false
    newView.backgroundColor = UIColor.black

    newView.frame.size = CGSize(width: SCREEN_WIDTH * 0.5 , height: SCREEN_HEIGHT * 0.5)

    self.view.addSubview(newView)
    self.view.layoutIfNeeded()
  }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我将框架赋予我的自定义视图的约束。我不想以 frame.size 的格式给出这个值。我想使用类似的东西constraint.constant。我的意思是纯自动布局。 图片