在xib或者storyBoard中給aView使用autoLayout設定了約束,可是想讓aView作一個簡單的動畫,好比從約束的A位置(0,0,100,100)移動到B位置(0,66,100,100)的簡單動畫。ios
那麼你會發現,若是在xib或者storyBoard中設定了約束,在代碼中直接修改aView的frame行不通的。動畫
實現結果就是在ios7上沒問題,可是在ios8上發現aView從A移動到B,可是又返回A(具體差異還沒找到)ip
解決方案:rem
loginViewTopConstraint = [NSLayoutConstraint constraintWithItem:self.loginView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:66];//定義新約束it
[self.view removeConstraint:self.topConstraint];//移除舊約束io
[self.view addConstraint:loginViewTopConstraint];//添加新約束ios7
[self.view layoutIfNeeded];//使約束生效ios8