侧滑菜单

#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

时间: 2024-10-07 09:06:22

侧滑菜单的相关文章

5.触摸事件、侧滑菜单

触摸事件 侧滑菜单--- github-SlidingMenu 1.在ViewGroup中,让自己内容移动有以下三个方法个方法: layout(l,t,r,b); offsetTopAndBottom(offset)和offsetLeftAndRight(offset); scrollTo和scrollBy方法; 注意:滚动的并不是viewgroup内容本身,而是它的矩形边框 它是瞬间移动的 2.在自定义ViewGroup中一般不需要去实现onMeasure, 我们去实现系统已有的ViewGro

【案例分享】仿QQ5.0侧滑菜单ResideMenu

本文由孙国威 原创.如需转载,请注明出处! 为了后续对这个项目进行优化,比如透明度动画.背景图的位移动画,以及性能上的优化. 我把这个项目上传到github上面,请大家随时关注. github地址https://github.com/sunguowei 最近项目要做一个QQ5.0的侧滑菜单效果,和传统的侧滑菜单存在着一些差异.想必大家都已经见识过了. 为了不重复发明轮子,先去github上面搜索了一番. 发现了几个类似的,但是还是有一些不同. 下面是搜索到的类似的开源项目. RESideMenu

android官方侧滑菜单DrawerLayout详解

drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现). drawerLayout的使用很方便,使用drawerLayout的要点如下: 1.drawerLayout其实是

android 应用架构随笔五(ActionBar与侧滑菜单DrawerLayout)

ActionBar(V7)的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了,在Android 3.0及更高的版本中,Activity中都默认包含有ActionBar组件. drawerLayout(V4)是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawer

【转】android官方侧滑菜单DrawerLayout详解

原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着

MUI - 侧滑菜单

各大APP必备的侧滑菜单栏,支持手势滑动.包含QQ式.美团式等 结构模板 这里是示例Html, 必须使用Mui框架才能使用. 主容器 <div class="mui-off-canvas-wrap mui-draggable"></div> 菜单窗体 <aside class="mui-off-canvas-right"></asign> 主窗体 <div class="mui-content mui-

Android笔记(五十二) 侧滑菜单SlidingMenu

SlidingMenu是一个优秀的开源项目,可以实现侧滑菜单,简单介绍一下这SlidingMenu的使用: 常用属性和方法: setTouchModeAbove(int i )是否可以通过滑动手势打开menu TOUCHMODE_MARGIN = 0  在边缘滑动 TOUCHMODE_FULLSCREEN = 1 在屏幕任意位置滑动 TOUCHMODE_NONE = 2 滑动无法打开menu setMode(int mode)设置menu出现位置 LEFT = 0    菜单出现在屏幕左侧 RI

Xamarin.Android中使用ResideMenu实现侧滑菜单

上次使用Xamarin.Android实现了一个比较常用的功能PullToRefresh,详情见:Xamarin. Android实现下拉刷新功能 这次将实现另外一个手机App中比较常用的功能:侧滑菜单.通过搜索,发现有很多侧滑菜单,有仿手机QQ的侧滑菜单,有折叠的侧滑菜单,有SlidingMenu等,不过我还是比较喜欢 ResideMenu实现的效果,所以想通过Xamarin.Android的绑定实现该效果.这次实现该菜单遇到的问题比较多,花的时间也较多,花了三四个晚上才解决所有的问题.下面是

Android 侧滑菜单的简单实现(SlidingMenu)二

在上一篇博文中已经简单的实现了侧滑菜单,代码也很简单,就几行代码. 这篇文章依然讲侧滑菜单,与前一篇文章不同的是,这篇文章用不同的代码方式来实现侧滑菜单. 在前面的文章中已经用了在Activity中通过SlidingMenu构造方法直接设置侧滑菜单,这里换成通过Activity继承SlidingActivity来实现侧滑. 代码如下: public class MainActivity extends SlidingActivity 重写onCreate()方法: @Override publi

Android 实现形态各异的双向侧滑菜单 自定义控件来袭

1.概述 关于自定义控件侧滑已经写了两篇了~~今天决定把之前的单向改成双向,当然了,单纯的改动之前的代码也没意思,今天不仅 会把之前的单向改为双向,还会多添加一种侧滑效果,给大家带来若干种形态各异的双向侧滑菜单,不过请放心,代码会很简单~~然后根据这若干种,只要你喜 欢,相信你可以打造任何绚(bian)丽(tai)效果的双向侧滑菜单~~ 首先回顾一下,之前写过的各种侧滑菜单,为了不占据篇幅,就不贴图片了: 1.最普通的侧滑效果,请参考:Android 自定义控件打造史上最简单的侧滑菜单 2.仿Q