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

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

我在UIViewControllerUIView顶部添加一个简单的UIView 。 我将大小更改为200 x 200,然后我想通过将这一行代码放在viewDidLoad方法中来更改UIView的大小:

 self.gameBackgroundView.frame.size.height = 10 

这在Swift中似乎完全正常。 虽然,没有任何反应。 我可以改变颜色,angular落半径等…

编辑:

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

好的,所以我在这里find了一个解决scheme。

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

正确的答案是:

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

谢谢你们!

这是因为自动布局,但是你可以在自动布局完成工作或改变它的约束之后做到这一点。 在你的viewDidAppear()设置你的frame 。 这应该是工作。

我希望这可以帮助你。

试试这个代码,它将在任何设备上工作

 let BackImage = UIImage(named: "backGrndImg@2x.png")! var imageView: UIImageView! override func loadView() { super.loadView() self.imageView = UIImageView(frame: CGRectZero) self.imageView.contentMode = .ScaleAspectFill self.imageView.image = BackImage self.view.insertSubview(imageView, atIndex: 0) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() self.imageView.frame = self.view.bounds }