我被一个非常简单的任务难住了,我想要一个 UIView 动画来缓入/缓出,但尽管使用了正确的动画选项,它总是线性的。
这是所有帐户都应该工作的代码,它设置在 UIViewControllerAnimatedTransitioning 类中,但我在以前的自定义 segue 类中遇到了同样的问题;
[UIView animateWithDuration:0.4f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^(void) {
self.dimView.alpha = 1.0;
self.imageView.frame = self.destinationRect;
} completion:^(BOOL finished) {
[self.imageView removeFromSuperview];
[self.dimView removeFromSuperview];
[transitionContext completeTransition:YES];
}];
但是,使用以下代码的弹簧动画可以工作,尽管我不想这样做。
[UIView animateWithDuration:0.8f delay:0 usingSpringWithDamping:0.7f initialSpringVelocity:2.0f options:UIViewAnimationOptionCurveEaseInOut animations:^(void) {
self.dimView.alpha = 1.0;
self.imageView.frame = self.destinationRect;
} completion:^(BOOL finished){
[self.imageView removeFromSuperview];
[self.dimView removeFromSuperview];
[transitionContext completeTransition:YES];
}];
我在模拟器和 iPad2 测试设备上得到了相同的行为。难道我做错了什么?动画帧或 alpha 值是否存在问题?