在 Swift 5 中更改 UIView 宽度

Change UIView width in Swift 5

我现在正在处理 Swift 项目,一直在研究如何在代码中更改 UIView 的宽度。

在我的故事板中,我有灰色 UI视图。

我在检查器中将其宽度设置为

equals: 160

但是,我不想为我的 UI 给出确切的数字,所以我对它进行了 @IBOutlet 并尝试将值设置为 0.2 * 父视图的宽度。但是当我构建时我看不到宽度变化...

@IBOutlet weak var parentView: UIView!
@IBOutlet weak var grayArea: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    grayArea.frame.size.width = parentView.frame.size.height * 0.2
}

我在 Stack Overflow 上搜索了类似的问题,但其中 none 对我的代码有用。谁能指出我在这里做错了什么?

作为 ,您将无法更改添加了约束的视图框架。相反,如果您希望宽度始终等于父级的 0.2,您应该只使用比例约束。

  1. 右键单击灰色视图,然后按住
  2. 拖到父视图,然后松开
  3. 选择等宽
  4. 在属性检查器中,select您刚刚添加的约束
  5. 单击编辑
  6. 为“乘数”输入 0.2
  7. 完成!