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

}

}];

}


}

相关文章:

  • 2021-10-12
  • 2022-12-23
  • 2022-01-30
  • 2021-12-18
  • 2022-12-23
  • 2022-01-02
  • 2021-08-26
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-12
  • 2022-12-23
相关资源
相似解决方案