为什么我不能在Swift中更改视图的框架大小?
所以这是我遇到过的最奇怪的事情。
我在UIViewController
的UIView
顶部添加一个简单的UIView
。 我将大小更改为200 x 200,然后我想通过将这一行代码放在viewDidLoad
方法中来更改UIView
的大小:
self.gameBackgroundView.frame.size.height = 10
这在Swift中似乎完全正常。 虽然,没有任何反应。 我可以改变颜色,angular落半径等…
编辑:
我也删除了该视图中的所有约束,但仍然无效。
好的,所以我在这里find了一个解决scheme。
使用自动布局以编程方式更改框架
正确的答案是:
- 我需要创build一个我的heightConstraint IBOutlet
- 相应地更改该约束的值
谢谢你们!
这是因为自动布局,但是你可以在自动布局完成工作或改变它的约束之后做到这一点。 在你的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 }