iOS抽屉式结构介绍
手机上装着QQ的朋友,肯定用过QQ左滑设置菜单。本文介绍的抽屉式结构就是和QQ类似的左滑显示菜单的结构。
iOS抽屉式结构实现分析
实现抽屉式结构其实不难,找准关键点就行。首先抽屉式结构是菜单页不动,主页向右滑动来展示菜单页。我们可以自定义一个controller,设置两个属性,一个mainVC,一个menuVC,将mainVC和menuVC的view添加到controller的view上(menuVC的view在下面)。然后实现两个方法openLeftMenu和closeLeftMenu(这两个方法主要是计算mainVC的view的位置),基本就完成了。然后给mainVC的view添加tap和pan手势,实现mainVC的view跟随手指移动即可。
主要代码
下面是主要实现代码:
// 使mainVC的view跟随手指移动,并比较结束时mainVC的view的左侧是在屏幕中心线的
// 左边还是右边从而判断结束时是打开还是要关闭菜单页
- (void)handlePanGesture:(UIPanGestureRecognizer *)pan {
// move pan.view with finger
CGPoint offsetPoint = [pan translationInView:pan.view];
pan.view.center = CGPointMake(pan.view.center.x + offsetPoint.x, pan.view.center.y);
[pan setTranslation:CGPointZero inView:self.view];
// fix pan.view center when slide end
if (pan.state == UIGestureRecognizerStateEnded) {
CGFloat mainVCLeft = pan.view.frame.origin.x;
if (mainVCLeft < kScreenWidth / 2.f) {
[self closeLeftMenu];
} else {
[self openLeftMenu];
}
}
}
我做了demo放到了GitHub上,喜欢的同学可以去下载参考使用。
GitHub