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

  • 相关阅读:
    入浅出MySQL 8.0 lock_sys锁相关优化 原创 腾讯数据库技术 腾讯数据库技术 2021-03-08
    以模型为中心,携程契约系统的演进
    bs
    外观模式
    设计接口时严格区分map、list,方便前端使用。
    t
    The HyperText Transfer Protocol (HTTP) 504
    入理解 epoll 原创 冯志明 Qunar技术沙龙 2021-03-10
    一次XSS和CSRF的组合拳进攻 (CSRF+JSON)
    当程序员具备了抽象思维 从码农到工匠 阿里巴巴中间件 2021-03-09
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5044599.html
Copyright © 2011-2022 走看看