`
seemefly163_0
  • 浏览: 20974 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

更改pushViewController和popViewController的动画效果

阅读更多

iPhone SDK的NavigationController提供的动画效果默认只有一种,如何实现各种不同的呢?
下面是来自three20的实现,大家只要把这两个方法作为UINavigationController的Category方法调用就可以了

 (void)pushAnimationDidStop {
}

- (void)pushViewController: (UIViewController*)controller
    animatedWithTransition: (UIViewAnimationTransition)transition {
  [self pushViewController:controller animated:NO];

  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
  [UIView setAnimationDelegate:self];
  [UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)];
  [UIView setAnimationTransition:transition forView:self.view cache:YES];
  [UIView commitAnimations];
}

- (UIViewController*)popViewControllerAnimatedWithTransition:(UIViewAnimationTransition)transition {
  UIViewController* poppedController = [self popViewControllerAnimated:NO];

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
  [UIView setAnimationDelegate:self];
  [UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)];
  [UIView setAnimationTransition:transition forView:self.view cache:NO];
  [UIView commitAnimations];

  return poppedController;
}

 

分享到:
评论

相关推荐

    iphone 各种视图切换效果

    尽管默认效果简单,但通过修改tabBarController的代理方法,可以实现更多创新的切换动画。 9. **自定义Container View Controller** 自定义容器视图控制器允许开发者创建自己的导航结构,可以自由设计视图之间的...

    ios-controller切换效果封装.zip

    3. **切换方法**:在标准的UINavigationController中,`pushViewController:animated:`和`popViewController:animated:`是切换控制器的常用方法。MGControllerSwitch可能重写了这些方法,添加了动画处理逻辑,使得...

    自定义导航转场动画

    在这个Demo中,可能包含了不同的动画效果,比如旋转、缩放或者平移等,这些都是通过修改`animateTransition(using:context:)`方法中的CGAffineTransform和CALayer属性来实现的。 总的来说,自定义导航转场动画是iOS...

    swift-导航控制器的压缩使得可以将导航范围缩小到指定区域

    3. **pushViewController和popViewController**:这两个方法是导航控制器的主要导航操作。pushViewController用于将新的视图控制器压入堆栈,popViewController则用于移除并返回上一个视图控制器。在压缩导航时,...

    Swift_ios_StartActivity

    2. **pushViewController和popViewController** `pushViewController(_:animated:)`方法用于将新的视图控制器推入堆栈,展示新的视图。`popViewController(animated:)`则用于从堆栈中移除当前显示的视图控制器,...

    UINavigationController自定义

    在`pushViewController(_:animated:)`或`popViewController(animated:)`方法前,需要将你的自定义动画和交互对象设置到`navigationController`中: ```swift let customAnimator = CustomAnimator() ...

    IOS源码应用Demo-UISegmentedControl 的 导航式风格.zip

    在UISegmentedControl的代理方法中,可以获取到当前选中的索引,然后决定是否需要pushViewController或popViewController。同时,还需要确保在导航栏上正确显示标题,以及可能的其他导航元素,如左侧的“返回”按钮...

    SlideMenu侧滑菜单

    开发者可能修改了`pushViewController:animated:`和`popViewController:animated:`等方法,以在滑动时添加独特的视觉反馈,使菜单的展开和收起更具有动态感和用户体验。 侧滑菜单的实现通常涉及手势识别,如...

    IOS滑动切换Navbar控制器

    4. **自定义NavigationBar**:为了实现更个性化的Navbar动画,可能需要自定义一个继承自UINavigationBar的子类,并重写其layoutSubviews方法,以便在转场过程中动态修改标题、按钮等元素的位置和属性。 5. **布局和...

    iOS 自定义UINavigationController和UITabBarController

    4. **拦截导航操作**:可以重写`pushViewController:animated:`和`popViewController:animated:`方法,以便在导航发生时执行额外的操作。 ### 二、自定义`UITabBarController` `UITabBarController`管理多个`...

    swift5.0 UINavigationController基础使用

    这将在当前视图控制器之上推送新的视图控制器,并显示动画效果。 4. **popViewController:animated:** 使用`popViewController:animated:`方法可以从导航栈中移除并返回上一个视图控制器: ```swift if let ...

    ios-左侧滑动.zip

    这可以通过使用`UINavigationController`的`pushViewController:animated:`和`popViewController(animated:)`方法,或者更复杂地使用`containerView`来实现。 3. **互动反馈**:为了提供更好的用户体验,这种滑动...

    WELNavHelper:简单的UINavigationController帮助器

    它通常会提供诸如pushViewController、popViewController、pushViewControllerWithoutAnimation、popViewControllerAnimated 等方法的快捷调用,这些方法都是对 `UINavigationController` 原有API的封装,使得开发者...

    导航控制器demo+文档

    3. **pushViewController(_:animated:)** 和 **popViewController(animated:)** 方法的动画可以通过自定义转场动画来扩展其视觉效果。 4. **navigationBar**: 导航条可以通过修改其属性来自定义,比如修改`...

    导航控制器全屏滑动返回

    这个动画通常是通过修改当前ViewController的透明度、位置或大小来模拟滑出屏幕的效果。 ```swift if gestureRecognizer.state == .changed { let translation = gestureRecognizer.translation(in: view) let ...

    能让你摆脱视图控制器的导航

    3. **可定制的转场(Custom Transitions)**:`RLDNavigationSwift`可能提供了自定义动画和过渡效果的能力,允许开发者为导航操作添加独特的视觉体验。 4. **可扩展的架构**:库的设计应该是可扩展的,允许开发者...

    自定义Tabbar

    此外,通过重写Tabbar的`setSelectedItem:`方法,我们可以控制选中项的动画效果。 6. 兼容不同屏幕尺寸 为了确保自定义Tabbar在各种屏幕尺寸上都能正常显示,我们需要考虑适配iPhone和iPad,以及横屏和竖屏模式。...

    Swift5.2 CustomNavigationController自定义导航栏.zip

    5. **扩展`UINavigationController`**:创建一个子类`CustomNavigationController`继承自`UINavigationController`,这样可以在子类中重写父类的方法,比如`pushViewController:animated:`和`popViewController:...

    ios的app的navigation bar的代码的实现。

    你还可以通过重写`pushViewController(_:animated:)`和`popViewController(animated:)`方法来自定义导航栏的过渡动画。 8. `TreeNavigation`文件 在`TreeNavigation`这个文件名中,我们可以猜测可能涉及的是一个...

    类似网易新闻客户端滑动联动效果

    在这个类中,你需要重写一些方法,比如`pushViewController:animated:`和`popViewController:animated:`,以实现自定义的滑动动画。 2. **滑动代理(Delegate)**:为了协调不同视图控制器间的滑动,可以设置一个...

Global site tag (gtag.js) - Google Analytics