我对iOS动画很陌生,我想知道是否可以使用CGAffineTransform组合两个图像之间的过渡以及UIImageView的翻译动画?
换句话说,我有两个想要在它们之间制作动画的图像,然后我想应用同步翻译,以便整个事物在两个图像之间来回移动时在页面上移动。
我知道我可以应用CGAffineTransformConcat来组合两个CGAffineTransforms,例如CGAffineTransformTranslate等。但是我没有看到允许我转换到另一个UIImage的CGAffineTransform。
我知道在图像之间设置动画的唯一方法是使用UIImageView animationImages数组和startAnimating。但是,我不知道如何将其与这样的翻译结合起来:
UIImageView* textView = [[UIImageView alloc] initWithFrame:bunnyImage.frame];
textView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"bunnyclose.png"],
[UIImage imageNamed:@"bunnytalk.png"],
nil];
textView.animationDuration = 1.0;
textView.animationRepeatCount = 8;
[textView startAnimating];
[self.view addSubview:textView];
有什么建议吗?
答案 0 :(得分:2)
在回答我自己的问题时,transitionFromView:toView:duration:options:completion中讨论的块动画函数"Creating Animated Transitions Between Views"是我提出的最佳解决方案。我使用它来在图像之间制作动画,这可以使用CGAffineTransformTranslate与块动画animateWithDuration:delay:options:animations:completion:结合使用,或者只需更改center中讨论的UIImageView的Animations。
重新编写我的原始代码块并添加我的翻译看起来像这样:
UIImageView* bunny2View = [[UIImageView alloc] initWithFrame:bunny2Image.frame];
[UIView
transitionFromView:bunny2Image
toView:bunny2View
duration:10.0
options:UIViewAnimationOptionShowHideTransitionViews
completion:^(BOOL finished) {
[UIView
animateWithDuration:dur
animations:^(void) {
CGPoint center = bunny2Image.center;
center.y += deltay;
bunny2Image.center = center;
bunny2View.center = center;
}
completion:^(BOOL finished) {
[UIView
transitionFromView:bunny2View
toView:bunny2Image
duration:10.0
options:UIViewAnimationOptionShowHideTransitionViews
completion:nil];
}];
}];
仍在进行中,但这是我到目前为止所提出的建议!