在我的应用程序的主页上,我想为一个滑入视图的 PNG 图像设置动画,然后在第二个图像滑入之前再次滑出,然后滑出。时间只是让观众在每个消失之前阅读。我不知道该怎么做,想要一些输入?看起来很简单,我希望它是,有人可以指导我如何去做。我也希望它循环播放,因此无论何时返回屏幕,它都会保持动画效果。
请问有什么想法吗?只有一天左右才能完成
在我的应用程序的主页上,我想为一个滑入视图的 PNG 图像设置动画,然后在第二个图像滑入之前再次滑出,然后滑出。时间只是让观众在每个消失之前阅读。我不知道该怎么做,想要一些输入?看起来很简单,我希望它是,有人可以指导我如何去做。我也希望它循环播放,因此无论何时返回屏幕,它都会保持动画效果。
请问有什么想法吗?只有一天左右才能完成
您可以为此使用核心动画。这真的很容易做到。示例动画:
UIImageView *imageView = ...;
imageView.frame = CGRectMake(-160, 100, 250, 200);
[UIView animateWithDuration:1.5 animations:^{
imageView.frame = CGRectMake(160, 100, 250, 200);
}];
这UIImageView
会在 1.5 秒内将 x 坐标从 -160 变为 160。
//初始点
pImgFlowing.frame = CGRectMake(544, 817, 84, 18);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//结束点
pImgFlowing.frame = CGRectMake(544, 774, 84, 61);
[UIView commitAnimations];
或多或少只是扩展了 Tom van Zummeren 的答案。这应该足以理解基本思想。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, -280, 280, 280)];
[myImageView setImage:[UIImage imageNamed:@"1.png"]];
[self.view addSubview:myImageView];
[UIView animateWithDuration:2.0 delay:1.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
[myImageView setCenter:self.view.center];
}completion:^(BOOL done){
[UIView animateWithDuration:2.0 delay:3.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
[myImageView setCenter:CGPointMake(myImageView.center.x, self.view.bounds.size.height + (myImageView.bounds.size.height / 2))];
}completion:^(BOOL done){
[myImageView setFrame:CGRectMake(20, -280, 280, 280)];
NSLog(@"%@",NSStringFromCGRect(myImageView.frame));
[myImageView setImage:[UIImage imageNamed:@"2.png"]];
}];
}];
}