背景如标题,我在awakeFromNib或者viewDidLoad修改约束的constant值,没有生效,原因是: 你在 viewDidLoad中修改的约束的代码块运行了,但是运行完之后又被 storyboard自己的配置给覆盖了,所以 你看到的还是之前的约束!这就说明storyboard的初始化优先于它对应的vc的viewDidLoad。
解决办法: 让修改 constant值或者约束的语句延迟执行即可!即使是 0.1秒,也能让 在storyboard初始完成之后你再修改相应的约束,这样就不会被覆盖掉了
-(void)awakeFromNib{
[super awakeFromNib];
[self performSelector:@selector(changeConstant) withObject:nil afterDelay:0.1];
}
//或者
-(void)viewDidLoad{
[super awakeFromNib];
[self performSelector:@selector(changeConstant) withObject:nil afterDelay:0.1];
}
-(void)changeConstant{
self.changeMcodelW.constant= 200*IPAD_SIZE;
self.changeMCodeBTnVH.constant = 46*IPAD_SIZE;
self.helpLayConVh.constant = 46*IPAD_SIZE;
self.cheakUpdataLayonH.constant=46*IPAD_SIZE;
self.changeFInfoVH.constant = 46*IPAD_SIZE;
self.changeFaceinfoLW.constant=150*IPAD_SIZE;
self.checkUpadataLw.constant = 100*IPAD_SIZE;
self.versionLayConW.constant = 86*IPAD_SIZE;
self.logoutBtnLayConW.constant = 49*IPAD_SIZE;
self.logoutBtnLayConT.constant = 60*IPAD_SIZE;
}