抽屉效果

这篇博客是自己写出的抽屉效果
基本上看出抽屉效果怎么实现的
虽然没有上一篇的效果炫酷 但是这是自己实现的效果
也是非常值得学习的

#import "ContentViewController.h"
#import "LeftViewController.h"
#import "CenterViewController.h"
#import "RightViewController.h"

// 屏幕尺寸
#define ScreenSize [UIScreen mainScreen].bounds.size

@interface ContentViewController ()
- (IBAction)leftSideMenuAction:(UIButton *)sender;
- (IBAction)rightSideMenuAction:(UIButton *)sender;

@end

@implementation ContentViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self addViewControllers];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */
// 添加子视图控制器
- (void)addViewControllers
{
    // 获取视图控制器
    // 获取UIStoryboard对象
    UIStoryboard * sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    // 实例化视图控制器
    LeftViewController * leftVC = [sb instantiateViewControllerWithIdentifier:@"LeftViewController"];
    CenterViewController * centerVC = [sb instantiateViewControllerWithIdentifier:@"CenterViewController"];
    RightViewController * rightVC = [sb instantiateViewControllerWithIdentifier:@"RightViewController"];
    // 添加子视图控制器
    [self addChildViewController:leftVC];
    [self addChildViewController:centerVC];
    [self addChildViewController:rightVC];

    // 添加子视图控制器的视图到当前视图控制器的视图上,作为子视图使用
    [self.view addSubview:leftVC.view];
    [self.view addSubview:centerVC.view];
    [self.view addSubview:rightVC.view];
    [self.view sendSubviewToBack:centerVC.view];

    // 修改左侧视图的frame
    leftVC.view.frame = CGRectMake(-ScreenSize.width, 0, ScreenSize.width, ScreenSize.height);
    // 修改右侧视图的frame
    rightVC.view.frame = CGRectMake(ScreenSize.width, 0, ScreenSize.width, ScreenSize.height);
}



- (IBAction)leftSideMenuAction:(UIButton *)sender {
    NSArray * childVCs = self.childViewControllers;
    UIViewController * leftVC = childVCs[0];
    UIViewController * centerVC = childVCs[1];
    [UIView animateWithDuration:1 animations:^{
        leftVC.view.frame = CGRectMake(0, 0, ScreenSize.width, ScreenSize.height);
        centerVC.view.frame = CGRectMake(ScreenSize.width / 2, 0, ScreenSize.width, ScreenSize.height);
        [self.view bringSubviewToFront:centerVC.view];
    }];
}

- (IBAction)rightSideMenuAction:(UIButton *)sender {
}

你可能感兴趣的:(博客)