在xib或者storyBoard中给aView使用autoLayout设定了约束,但是想让aView做一个简单的动画,比如从约束的A位置(0,0,100,100)移动到B位置(0,66,100,100)的简单动画。
那么你会发现,如果在xib或者storyBoard中设定了约束,在代码中直接修改aView的frame行不通的。
实现结果就是在ios7上没问题,但是在ios8上发现aView从A移动到B,但是又返回A(具体差别还没找到)
解决方案:
loginViewTopConstraint = [NSLayoutConstraint constraintWithItem:self.loginView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:66];//定义新约束
[self.view removeConstraint:self.topConstraint];//移除旧约束
[self.view addConstraint:loginViewTopConstraint];//添加新约束
[self.view layoutIfNeeded];//使约束生效
时间: 2024-11-04 19:25:32