侧滑菜单JYJSlideMenuController

JYJSlideMenuController

gitHub地址 https://github.com/jiangyongjian/JYJSlideMenuController
一款不一样的侧滑菜单

GIF

JYJSlideMenuController.gif
JYJSlideMenuController.png

message

JYJSlideMenuController 模仿摩拜侧滑导航栏,既然都是共享单车,为什么侧滑菜单不拿出来共享呢

Usage

JYJSlideMenuController 很简单,利用系统的导航栏,带有UIBarButtonItem慢慢出现的效果,省去自定义的麻烦。下来接下来我讲解具体实现大致步骤:

侧滑栏有右半部分是透明的,可以看到下面。经过思考,觉得是窗口window。 设置window的跟控制器为导航控制器window_.rootViewController = nav;.整个过程还是用的系统的导航栏不用自定义

1、添加手势。手势选用很有讲解,仔细观察摩拜,屏幕边缘也有手势,用的就是 UIScreenEdgePanGestureRecognizer,然而有地图的存在,根本不起作用。怎么办呢?解决办法就是实现代理方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self
                                                      action:@selector(moveViewWithGesture:)];
leftEdgeGesture.edges = UIRectEdgeLeft;// 屏幕左侧边缘响应
[self.view addGestureRecognizer:leftEdgeGesture];
// 这里是地图处理方式,遵守代理协议,实现代理方法
leftEdgeGesture.delegate = self;

2、出来之后状态栏的隐藏,这里就很讲究了状态栏慢慢隐藏的。
在info.plist中配置UIViewControllerBasedStatusBarAppearance为YES。
然后在控制器中实现


-(BOOL)prefersStatusBarHidden
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation

动画展示隐藏的话需要动画

self.hideStatusBar = YES;
[UIView animateWithDuration:animationTime animations:^{
            [self setNeedsStatusBarAppearanceUpdate];
            self.rootViewController.navigationController.navigationBar.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 64);
}];

联系我

QQ 453255376, 如有bug、不明白的,希望大家踊跃联系我,把程序写的更好。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值