首页 > 解决方案 > 在 Swift 5 中更改 UIView 宽度

问题描述

我现在正在开发 Swift 项目,并坚持如何在代码中更改 UIView 的宽度。

在我的故事板中,我有灰色的 UIView。

横向设备右侧的灰色视图

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

等于: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 上搜索了类似的问题,但没有一个适用于我的代码。谁能指出我在这里做错了什么?

标签: iosswiftxcodeuiview

解决方案


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

  1. 右键单击灰色视图,然后按住
  2. 拖动到父视图,然后释放
  3. 选择Equal Widths
  4. 在属性检查器中,选择您刚刚添加的约束
  5. 点击Edit
  6. 输入0.2“乘数”
  7. 完毕!

以上步骤的GIF


推荐阅读