美文网首页
iOS-抽屉模式

iOS-抽屉模式

作者: 守护浪漫的小香樟 | 来源:发表于2017-12-21 13:45 被阅读0次

在app的开发过程中通常为了增强APP的吸引力会采取一些抽屉的切换特效,今天我们就来尝试一个简单的抽屉特效!

这个抽屉效果由:

1、一个控制ViewC0ntroller  

2、一个菜单ViewC0ntroller   (可自定义) 

3、两个显示ViewC0ntroller(可以进行添加为多个

组成 用协议等方式进行交互信息传递,就生成了我们这么酷炫的一个抽屉模式!

抽屉模式

一、显示ViewC0ntroller


分别设置title   和leftBarButtonItem  用于和菜单ViewC0ntroller进行交互   其中leftBarButtonItem要给一个开关菜单的方法,如下:

[self.navigationController.parentViewController performSelector:@selector(openCloseMenu)];

openCloseMenu是写在控制ViewC0ntroller中控制菜单是否显示

二、菜单ViewC0ntroller


菜单中根据显示的ViewController的个数创建对应个数的按钮  并用协议将按钮的Tag传递给控制的ViewController用于切换心事那一个控制器

三、控制ViewC0ntroller

此控制器用来控制显示ViewController的显示,

1、首先添加菜单控制器  

[self setMenu:[[JSMenuViewController alloc]init]]; [self addChildViewController:self.menu]; [self.view addSubview:self.menu.view]; self.menu.degete = self;

2、然后添加显示控制器为ChildViewController;

FirstViewController * first = [[FirstViewController alloc]init]; UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:first]; SecondViewController * Second = [[SecondViewController alloc]init]; UINavigationController * nav1 = [[UINavigationController alloc]initWithRootViewController:Second]; [self setControllerArray:@[nav,nav1]]; [self setController:nav];

3、然后根据遵守菜单控制器的协议用控制器的xindex  来决定显示哪一个控制器,

[self addChildViewController:controller]; [self.view addSubview:controller.view];

4、而后点击菜单按钮来改变显示控制器的transform从而显示成抽屉打开的样式

if (!_isopen) { self.controller.view.transform = CGAffineTransformMakeTranslation(JWidth - 100, 100); }else{ self.controller.view.transform = CGAffineTransformMakeTranslation(0, 0); }

四、GitHub地址(Demo):https://github.com/JamesBondMine/-

相关文章

网友评论

      本文标题:iOS-抽屉模式

      本文链接:https://www.haomeiwen.com/subject/mkoowxtx.html