zoukankan      html  css  js  c++  java
  • 使用PPRevealSideViewController实现侧滑效果

    使用起来还是比较简单的, 主要是几个步骤

    AppDelegate.m

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = PP_AUTORELEASE([[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]);
        
        // 创建抽屉的根控制器
        ViewController *main = [[ViewController alloc] init];
        main.view.backgroundColor = [UIColor whiteColor];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:main];
        
        // 创建抽屉控制器并且设置其根控制器
        self.revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:nav];
        
        self.revealSideViewController.delegate = self;
        
        // 将抽屉控制器作为根控制器
        self.window.rootViewController = self.revealSideViewController;
        
        // 设置状态栏颜色
        self.revealSideViewController.fakeiOS7StatusBarColor = [UIColor orangeColor];
        
        self.window.backgroundColor = [UIColor whiteColor];
        
        return YES;
    }

    ViewController.m

    #import "ViewController.h"
    #import "PPRevealSideViewController.h"
    #import "RPOneViewController.h"
    #import "RPTwoTableViewController.h"
    
    #define RPOffset 100     // 设置主控制器移动后留下的视图宽度
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithTitle:@"Left"
                                                                 style:UIBarButtonItemStylePlain
                                                                target:self
                                                                action:@selector(showLeft)];
        self.navigationItem.leftBarButtonItem = left;
        
        UIBarButtonItem *right = [[UIBarButtonItem alloc] initWithTitle:@"Right"
                                                                  style:UIBarButtonItemStylePlain
                                                                 target:self
                                                                 action:@selector(showRight)];
        
        // 手势左右滑动屏幕
        UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(showRight)];
        [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
        [self.view addGestureRecognizer:swipeLeft];
        
        UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(showLeft)];
        [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
        [self.view addGestureRecognizer:swipeRight];
        
        self.navigationItem.rightBarButtonItem = right;
    }
    
    // 显示左边抽屉
    - (void)showLeft
    {
        RPTwoTableViewController *c = [[RPTwoTableViewController alloc] init];
        
        // 设置主控制器移动后留下的视图宽度
        [self.revealSideViewController changeOffset:RPOffset forDirection:PPRevealSideDirectionLeft];
        
        // 显示子控制器
        [self.revealSideViewController pushViewController:c onDirection:PPRevealSideDirectionLeft withOffset:RPOffset animated:YES completion:^{
            PPRSLog(@"This is the left!");
        }];
    }
    
    // 显示右边
    - (void)showRight
    {
        RPOneViewController *c = [[RPOneViewController alloc] init];
        
        // 设置主控制器移动后留下的视图宽度
        [self.revealSideViewController changeOffset:RPOffset forDirection:PPRevealSideDirectionRight];
        
        // 显示子控制器
        [self.revealSideViewController pushViewController:c onDirection:PPRevealSideDirectionRight withOffset:RPOffset animated:YES completion:^{
            PPRSLog(@"This is the right!");
        }];
    }

    Demo:

    https://github.com/RinpeChen/PPRevealSideViewControllerDemoByRinpe

  • 相关阅读:
    每天一篇文献:A SURVEY OF LEARNING FROM DEMONSTRATION USED IN ROBOTICS
    PyBullet(七)在PyBullet中使用VR
    期刊模板搜索网址
    论文阅读:Robot Program Parameter Inference via Differentiable Shadow Program Inversion
    visio画图如何插入到latex中
    win10下TensorFlow-GPU安装(GTX1660+CUDA10+CUDNN7.4)
    Object detection with localization using Unity Barracuda and ARFoundation
    论文阅读:Design and Implementation of a Virtual Reality Application for Mechanical Assembly Training
    Qt开发经验小技巧151-155
    Qt开发经验小技巧146-150
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5044599.html
Copyright © 2011-2022 走看看