当storyboard使用了Auto Layout,想通过代码改变控件布局时,
如果在viewDidLoad方法里去修改,是无效的。
- (void)viewDidLoad {
[super viewDidLoad];
self.placeHolder.frame=CGRectMake(0,0,200,300);
}
因为storyboard里的控件布局是在viewDidAppear时执行的,应该这些去修改控件的布局:
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
dispatch_async(dispatch_get_main_queue(), ^{
self.placeHolder.frame=CGRectMake(0,0,200,300);
});
}
把代码放到dispatch block中是为了保证你的代码在auto layout后才执行.
转注:从别的界面返回时,界面改变会有延时,暂未找到合适的办法。
网友评论