手机
当前位置:查字典教程网 >编程开发 >IOS开发 >iOS如何用100行代码实现简单的抽屉效果
iOS如何用100行代码实现简单的抽屉效果
摘要:前言iOS中抽屉效果的简单实现现在很多应用中都使用到了,网上也有很多了例子,本文主要是通过简单的一些代码来实现的,有需要的可以一起学习学习。...

前言

iOS中抽屉效果的简单实现现在很多应用中都使用到了,网上也有很多了例子,本文主要是通过简单的一些代码来实现的,有需要的可以一起学习学习。

下面是效果图

iOS如何用100行代码实现简单的抽屉效果1

示例代码如下

#import <UIKit/UIKit.h> @interface MainViewController : UIViewController + (instancetype)mainViewControllerWithLeftViewController:(UIViewController *)leftViewController withMainPageViewController:(UIViewController *)mainPageViewController; @end

#import "MainViewController.h" #define KWidth self.view.frame.size.width #define KHeight self.view.frame.size.height @interface MainViewController () @property (nonatomic,strong)UIViewController *leftVC; @property (nonatomic,strong)UIViewController *centerVC; @property (nonatomic,assign)BOOL isSlider; @property (nonatomic,strong)UIView *corverView; @end @implementation MainViewController + (instancetype)mainViewControllerWithLeftViewController:(UIViewController *)leftViewController withMainPageViewController:(UIViewController *)mainPageViewController{ MainViewController *mainVC = [[MainViewController alloc] init]; mainVC.leftVC = leftViewController; mainVC.centerVC = mainPageViewController; return mainVC; } - (void)viewDidLoad{ [super viewDidLoad]; self.isSlider = NO; self.view.backgroundColor = [UIColor whiteColor]; [self addChildViewController:self.leftVC]; [self.view addSubview:self.leftVC.view]; [self addChildViewController:self.centerVC]; [self.view addSubview:self.centerVC.view]; // 给左视图和主视图添加手势 [self addGestureForView]; } // 给主视图添加遮盖 - (void)addCorverView{ if (self.corverView) { [self.corverView removeFromSuperview]; self.corverView = nil; } self.corverView = [[UIView alloc] initWithFrame:self.centerVC.view.bounds]; _corverView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.0]; [self.centerVC.view addSubview:self.corverView]; } // 移除主视图遮盖 - (void)removeCoverView{ if (self.corverView) { [self.corverView removeFromSuperview]; self.corverView = nil; } } // 给左视图和主视图添加手势 - (void)addGestureForView{ UISwipeGestureRecognizer *rightGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRightAction:)]; rightGesture.direction = UISwipeGestureRecognizerDirectionRight; [self.centerVC.view addGestureRecognizer:rightGesture]; UISwipeGestureRecognizer *leftGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeftAction:)]; leftGesture.direction = UISwipeGestureRecognizerDirectionLeft; [self.centerVC.view addGestureRecognizer:leftGesture]; UISwipeGestureRecognizer *leftVCLeftSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftVCLeftSwipeAction:)]; leftVCLeftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft; [self.leftVC.view addGestureRecognizer:leftVCLeftSwipeGesture]; } - (void)swipeRightAction:(id)sender{ [self moveView:self.centerVC.view scale:0.8 panValue:KWidth]; self.isSlider = YES; [self addCorverView]; } - (void)swipeLeftAction:(id)sender{ [self moveView:self.centerVC.view scale:1 panValue:KWidth / 2]; self.isSlider = NO; [self removeCoverView]; } - (void)leftVCLeftSwipeAction:(id)sender{ [self moveView:self.centerVC.view scale:1 panValue:KWidth / 2]; self.isSlider = NO; [self removeCoverView]; } // 平移和缩放一个视图 - (void)moveView:(UIView *)view scale:(CGFloat)scale panValue:(CGFloat)value{ [UIView beginAnimations:nil context:nil]; view.transform = CGAffineTransformScale(CGAffineTransformIdentity,scale,scale); view.center = CGPointMake(value, view.center.y); [UIView commitAnimations]; } @end

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

【iOS如何用100行代码实现简单的抽屉效果】相关文章:

IOS代码笔记UIView的placeholder的效果

详解IOS中如何实现瀑布流效果

iOS实现图片轮播效果

IOS代码笔记之左右滑动效果

iOS开发中实现显示gif图片的方法

iOS开发中实现一个简单的图片浏览器的实例讲解

iOS开发中Quartz2D控制圆形缩放和实现刷帧效果

iOS实现滚动字幕的动画特效

IOS代码笔记之下拉菜单效果

iOS利用单例实现不同界面间的数据传输

精品推荐
分类导航