子View中使用AutoLayout后,在父View中如果使用animateWithDuration进行动画处理,子View的动画效果生效,但是子View中的元素不会产生动画效果。
解决方法,需要在执行animateWithDuration中调用子View的layoutIfNeeded
[UIView animateWithDuration:2 animations:^{
CGRect rect = self.loginAlertV.frame;
rect.size.width = SCREEN_WIDTH - 24 - 40 - 24;
self.loginAlertV.frame = rect;
[self.loginAlertV layoutIfNeeded];
} completion:^(BOOL finished) {}];
类似这样