iOS查看动画

时间:2011-11-20 02:05:52

标签: iphone objective-c cocoa-touch ipad

我正在尝试创建一个用于在iOS设备上切换视图的动画。 我创建了一个包含三个视图的应用程序,并且我有一些导航按钮。 我用来切换视图的方式是:

-(IBAction) loadThirdView:(id)sender {
[self clearView];
 self.thirdViewController.view.frame = CGRectMake(0, 208, 160, 208);
[self.view insertSubview:thirdViewController.view atIndex:0];
}

正如您所看到的,这是按下按钮后发生的操作。我想要的是以动画方式出现的新视图。 具体来说,我希望它从屏幕的左侧开始并向右滑动。我不希望它出现。

这可能吗?我怎么能这样做?

3 个答案:

答案 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];