我正在尝试创建一个用于在iOS设备上切换视图的动画。 我创建了一个包含三个视图的应用程序,并且我有一些导航按钮。 我用来切换视图的方式是:
-(IBAction) loadThirdView:(id)sender {
[self clearView];
self.thirdViewController.view.frame = CGRectMake(0, 208, 160, 208);
[self.view insertSubview:thirdViewController.view atIndex:0];
}
正如您所看到的,这是按下按钮后发生的操作。我想要的是以动画方式出现的新视图。 具体来说,我希望它从屏幕的左侧开始并向右滑动。我不希望它出现。
这可能吗?我怎么能这样做?
答案 0 :(得分:4)
哦不!啊,不!请不要以这种方式显示UIViewControllers。
以这种方式呈现你的UIViewController:
[self presentModalViewController:self.thirdViewController animated:YES]
在呈现之前,您可以更改视图控制器的modalTransitionStyle属性以满足您的需要。
如果使用UINavigationController,请改为使用:
[yourNavController pushModalViewController:self.thirdViewController animated:YES]
这是一篇不错的小文章(如果不是太苛刻):Abusing UIViewControllers
要按照您特别想要的方式为其设置动画(因为UINavigationController样式从右侧滑入),您可能希望使用类似于此SO问题中提出的内容:iPhone Pushing View Controller in a left direction
答案 1 :(得分:3)
你可以尝试
[UIView transitionFromView:currView toView:nextView duration:0.5f options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];
如果你想要不同类型的动画。你可以选择很多AnimationsOptions,只需设置options:
。
答案 2 :(得分:0)
示例代码:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.6];
yourImageVieew.alpha=0.9;//insert here what you want
[UIView commitAnimations];