2016-02-27 72 views
0

我是attempting to change the size of a UIView,我已将其放置在Storyboard中。由于某些原因,size does not change但仍与故事板上绘制的相同。我没有迷上Autolayout,所以这不能成为它保持不变的原因。我的代码:通过编程方式更改Storyboard上的UIView的大小

@IBOutlet weak var courseView: CourseView! // CourseView is a UIView 

override func viewWillAppear(animated: Bool) { 
    courseView.frame = CGRectMake(0, 0, 200, 200) // This is just to test! 
} 

我也在viewDidLoad()做过同样的事情,但没有成功。有任何想法吗?

+0

您正在使用'auto layout'吗?在superview我的意思是 –

回答

0

Acording这个answer

的方法viewWillAppear:viewDidLoad:没有布局信息。当稍后调用viewDidLayoutSubviews:时,此处所做的任何布局更改都将丢失。

如果您正在使用自动布局,你不能在任何时候改变约束,但如果你不使用自动布局需要@viewDidLayoutSubviews:或视图后更新布局的实际变化会发生@viewDidLayoutSubviews:

(@viewDidAppear:或用户输入)

+0

完美的作品,谢谢!我发现viewDidLayoutSubviews()实际上效果更好,因为没有时间延迟。如果在viewDidAppear()中调用,原始视图会闪烁起来,然后只会绘制调整后的视图。 – Pete

相关问题