为什么我不能在Swift中更改视图的帧大小?

kal*_*fun 4 frame uiview ios swift

所以这是我遇到过的最奇怪的事情.

我在一个UIView上添加一个简单UIViewUIViewController.我将大小更改为200 x 200然后我想UIView通过在代码中放置这行代码来更改大小viewDidLoad:

self.gameBackgroundView.frame.size.height = 10
Run Code Online (Sandbox Code Playgroud)

这在Swift中看起来很正常.虽然没有任何反应.我可以改变颜色,角半径等......

编辑:

我还删除了该视图中的所有约束,但仍然无效.

kal*_*fun 17

好的,所以我在堆栈上找到了解决方案..

使用自动布局以编程方式更改框架

正确的答案,有效的是:

  1. 我需要创建一个我的heightConstraint的IBOutlet
  2. 相应地更改该约束的值

谢谢你们!


Vic*_*ler 5

这是因为自动布局,但是,您可以在自动布局完成其工作或更改其约束后执行此操作。将其设置为您frameviewDidAppear()。它应该工作。

我希望这可以帮助你。