首页 > 其他 > 详细

侧滑菜单

时间:2015-06-13 14:03:49      阅读:125      评论:0      收藏:0      [点我收藏+]

#import "MJViewController.h"

#import "MJMenuViewController.h"

#import "MJCenterViewController.h"

#import "UIView+MJ.h"

 

#define MJMenuWidth 150

 

@interface MJViewController ()

 

@end

 

@implementation MJViewController

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    // 1.初始化子控制器

    // 1.1.左侧菜单

    MJMenuViewController *menuVc = [[MJMenuViewController alloc] init];

    menuVc.view.width = MJMenuWidth;

    menuVc.view.y = 20;

    [self.view addSubview:menuVc.view];

    [self addChildViewController:menuVc];

    

    // 1.2.中间内容

    MJCenterViewController *centerVc = [[MJCenterViewController alloc] init];

    centerVc.view.frame = self.view.bounds;

    [self.view addSubview:centerVc.view];

    [self addChildViewController:centerVc];

    

    // 2.监听手势

    [centerVc.view addGestureRecognizer:[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(dragCenterView:)]];

}

 

// transform == 150

// 1

// 用x来判断,用transform来控制

- (void)dragCenterView:(UIPanGestureRecognizer *)pan

{

    CGPoint point = [pan translationInView:pan.view];

    

    // 结束拖拽

    if (pan.state == UIGestureRecognizerStateCancelled || pan.state == UIGestureRecognizerStateEnded) {

        if (pan.view.x >= MJMenuWidth * 0.5) { // 往右边至少走动了75

            [UIView animateWithDuration:0.5 animations:^{

                pan.view.transform = CGAffineTransformMakeTranslation(MJMenuWidth, 0);

            }];

        } else { // 走动距离的没有达到75

            [UIView animateWithDuration:0.5 animations:^{

                pan.view.transform = CGAffineTransformIdentity;

            }];

        }

    } else { // 正在拖拽中

        pan.view.transform = CGAffineTransformTranslate(pan.view.transform, point.x, 0);

        [pan setTranslation:CGPointZero inView:pan.view];

        

        if (pan.view.x >= MJMenuWidth) {

            pan.view.transform = CGAffineTransformMakeTranslation(MJMenuWidth, 0);

        } else if (pan.view.x <= 0) {

            pan.view.transform = CGAffineTransformIdentity;

        }

    }

}

 

@end

 

侧滑菜单

原文:http://www.cnblogs.com/yintingting/p/4571833.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!