我希望同时执行两个动画,第一个动画在
在iOS 7上,一旦第二个
firstView
上立即开始。当第一个动画仍在运行时,第二个动画在稍微延迟后在secondView
上开始。secondView
的约束与firstView
有关。此代码可在iOS 8上完美运行。
firstView
和secondView
是view
的子视图。view
|--- firstView
|--- secondView
代码:
UIView *firstView = ...;
UIView *secondView = ...;
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:firstView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
[self.view addConstraint:constraint];
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
}];
[UIView animateWithDuration:0.5 delay:0.15 options:UIViewAnimationOptionCurveEaseInOut animations:^{
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:secondView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:firstView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
[self.view addConstraint:constraint];
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
}];
在iOS 7上,一旦第二个
layoutIfNeeded
被调用,第一个动画就会停止,并且只有第二个动画会执行。有什么建议吗?