iOS如何用100行代碼實現簡單的抽屜效果_IOS

來源:互聯網
上載者:User

前言

iOS中抽屜效果的簡單實現現在很多應用中都使用到了,網上也有很多了例子,本文主要是通過簡單的一些代碼來實現的,有需要的可以一起學習學習。

下面是效果圖

範例程式碼如下

#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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能有所協助,如果有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.