可以改变幻灯片动画方向吗?

时间:2011-02-12 18:39:04

标签: iphone objective-c cocoa-touch xcode ios-4.2

在我的应用程序中有一个主表视图。单击单元格时,将创建一个DetailView,其中显示该单元格项目的详细信息。在每个DetailView上我都有下一个和上一个按钮,可以帮助用户转到下一个和上一个项目的DetailView,而无需返回到RootView。当我点击下一步按钮。动画是从右到左。当我点击上一个按钮时也一样。单击上一个按钮时,动画应该从左到右。有没有改变那个动画方向。我不想使用[self.navigationController popViewControllerAnimated:YES],因为我有很多项目,很难处理导航堆栈。那么当我点击上一个按钮时,有什么方法可以从左到右改变从右到左的动画。

1 个答案:

答案 0 :(得分:1)

它可以实现导航控制器和推送和弹出,你不必处理凌乱的导航堆栈,因为你要做的只是1)推送视图并从堆栈中删除以前的视图(在'next'的情况下),或者2)在当前视图前面的堆栈中插入一个视图并弹出当前视图(在'previous'的情况下)。

然而,到目前为止,我认为没有理由在这里使用导航控制器。切换到新的详细信息视图时,请将新视图准备为隐藏,然后将视图插入视图图层的顶部。然后,使用所需选项创建CATransition对象,取消隐藏新视图,并处理上一个详细信息视图(例如,删除它)。例如,

CATransition transition = [CATransition animation];
transition.duration = 0.75;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = (nextDidPressed)? kCATransitionFromRight : kCATransitionFromLeft;
newDetailView.hidden = NO;
detailView.hidden = YES;
self.detailView = newDetailView;

上面的代码对您的视图布局和声明的属性做了一些假设。根据代码的其他部分进行适当的更改。