在 viewDidLoad中修改 constant值,或者修改其他约束的值,却没有产生任何效果
这是因为 :你在storyboard设置的约束是后, viewDidLoad中修改的约束的代码块运行了,但是 运行完之后 又被 storyboard自己的配置给覆盖了,所以 你看到的还是你之前设置的约束!
解决办法:
让修改 constant值或者约束的语句延迟执行即可!即使是
0.1
秒,也能让
在storyboard初始完成之后你再修改相应的约束,这样就不会被覆盖掉了!
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t) (delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void)
{
//延迟一秒改变约束,不然没效果
head.topSpace.constant = 38;
});
2 需要动画时
[UIView animateWithDuration:0.3 animations:^{
self.leading.constant = DEF_SCREEN_WIDTH/3*1+5;
[self layoutIfNeeded];
}];
}