• 使用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

  • 相关阅读:
    使用header发送状态代码
    apache rewrite模块基础知识
    Deprecated: Function set_magic_quotes_runtime() is deprecated
    Xmind3.3强烈推荐
    windows 下安装svn服务
    Zend Studio 8
    mysql触发器
    程序员每天该做的事(转载)
    你真的了解.NET中的String吗?
    VS2005中Build顺序的设定
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5044599.html
Copyright © 2020-2023  润新知