zoukankan      html  css  js  c++  java
  • UITabbarController左右滑动切换标签页

    UITabbarController左右滑动切换标签页

    每个Tabbar ViewController都要添加如下代码,建议在基类中添加:
    ViewDidLoad
    UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(tappedRightButton:)];

    [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];

    [self.view addGestureRecognizer:swipeLeft];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(tappedLeftButton:)];

    [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];

    [self.view addGestureRecognizer:swipeRight];

    再添加2个函数,包含切换动画效果:

    - (IBAction) tappedRightButton:(id)sender

    {

    NSUInteger selectedIndex = [self.tabBarController selectedIndex];

    NSArray *aryViewController = self.tabBarController.viewControllers;

    if (selectedIndex < aryViewController.count - 1) {

    UIView *fromView = [self.tabBarController.selectedViewController view];

    UIView *toView = [[self.tabBarController.viewControllers objectAtIndex:selectedIndex + 1] view];

    [UIView transitionFromView:fromView toView:toView duration:0.5f options:UIViewAnimationOptionTransitionFlipFromRight completion:^(BOOL finished) {

    if (finished) {

    [self.tabBarController setSelectedIndex:selectedIndex + 1];

    }

    }];

    }

    }

    - (IBAction) tappedLeftButton:(id)sender

    {

    NSUInteger selectedIndex = [self.tabBarController selectedIndex];

    if (selectedIndex > 0) {

    UIView *fromView = [self.tabBarController.selectedViewController view];

    UIView *toView = [[self.tabBarController.viewControllers objectAtIndex:selectedIndex - 1] view];

    [UIView transitionFromView:fromView toView:toView duration:0.5f options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {

    if (finished) {

    [self.tabBarController setSelectedIndex:selectedIndex - 1];

    }

    }];

    }


    }

  • 相关阅读:
    【LeetCode】203. Remove Linked List Elements
    【Leetcode】237. Delete Node in a Linked List
    char * const * (*a) (int b)
    排序算法
    系统设计
    PHP生成随机单词
    通过建立ssh信任,启动其他客户机的服务
    定时监控服务,告警,并启动服务
    定时监控所有服务器的端口,如果挂起,发送报警邮件
    反射
  • 原文地址:https://www.cnblogs.com/wntd/p/6640356.html
Copyright © 2011-2022 走看看