側(cè)滑效果(抽屜)

控制器抽屜側(cè)滑,左中右三個(gè)控制器,這里使用上面提到的MMDrawerController框架。

1、首先創(chuàng)建三個(gè)控制器為center、left、right,創(chuàng)建完成之后,我們來到我們的AppDelegate,開始編寫我們的代碼了

1.1多話不說,先導(dǎo)入頭文件,并且添加一個(gè)MMDrawerController的屬性

//為MMDrawerController框架中

? #import "MMDrawerController.h"

? #import "UIViewController+MMDrawerController.h"

? //為自己創(chuàng)建的三個(gè)控制器

? #import "LitterLCenterViewController.h"

? #import "LitterLLeftViewController.h"

? #import "LitterLRightViewController.h"

? @interface LitterLAppDelegate ()

? /**

? *? MMDrawerController屬性

? */

? @property(nonatomic,strong) MMDrawerController * drawerController;

? @end

1.2?上面的做完后,我們便要顯示我們的窗口到設(shè)備上,接下來來到這里

//1、初始化控制器

? ? UIViewController*leftVC = [[leftViewControlleralloc]init];

? ? UIViewController*rightVC = [[rightViewControlleralloc]init];

? ? //2、初始化導(dǎo)航控制器

? ? UINavigationController *leftNvaVC = [[UINavigationController alloc]initWithRootViewController:leftVC];

? ? UINavigationController *rightNvaVC = [[UINavigationController alloc]initWithRootViewController:rightVC];


? ? //3、使用MMDrawerController

? ? self.drawerController = [[MMDrawerController alloc]initWithCenterViewController:leftNvaVC leftDrawerViewController:rightNvaVC ];


? ? //4、設(shè)置打開/關(guān)閉抽屜的手勢(shì)

? ? self.drawerController.openDrawerGestureModeMask = MMOpenDrawerGestureModeAll;

? ? self.drawerController.closeDrawerGestureModeMask =MMCloseDrawerGestureModeAll;

? ? //5、設(shè)置左右兩邊抽屜顯示的多少

? ? self.drawerController.maximumLeftDrawerWidth = 200.0;

? ? self.drawerController.maximumRightDrawerWidth = 200.0;

?????ScrollViewController *scroll = [[ScrollViewController alloc]init];

? ? self.window.rootViewController = scroll;



? ? dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(8.0*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

? ? ? ? //6、初始化窗口、設(shè)置根控制器、顯示窗口

? ? ? ? self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

? ? ? ? [self.window setRootViewController:self.drawerController];

? ? ? ? [self.window makeKeyAndVisible];

? ? });

2、完成上面后基本的抽屜效果就已經(jīng)實(shí)現(xiàn)了,在這里的話,我們將要實(shí)現(xiàn)導(dǎo)航欄上面的按鈕,以及一些效果。


2.1完成上面后,導(dǎo)航欄的點(diǎn)擊就能切換,那么我們就來實(shí)現(xiàn)一個(gè)效果吧(ViewController),所謂的彈簧效果,也就幾句代碼


????self.title = @"側(cè)滑";

? ? self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"menu"] style:UIBarButtonItemStylePlain target:self action:@selector(leftBtn)];

? ? //2、添加雙擊手勢(shì)

? ? UITapGestureRecognizer * doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];

? ? //2.1、雙擊

? ? [doubleTapsetNumberOfTapsRequired:2];

? ? [self.view addGestureRecognizer:doubleTap];

? ? //3、添加兩個(gè)手指雙擊手勢(shì)

? ? UITapGestureRecognizer* twoFingerDoubleTap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(twoFingerDoubleTap:)];

? ? //3.1、雙擊

? ? [twoFingerDoubleTapsetNumberOfTapsRequired:2];

? ? //3.2、兩個(gè)手指? 默認(rèn)為一個(gè)

? ? [twoFingerDoubleTapsetNumberOfTouchesRequired:2];

? ? [self.viewaddGestureRecognizer:twoFingerDoubleTap];

2.2這里的話就是我們的方法,其實(shí)很簡單

-(void)leftBtn{

? ? //這里的話是通過遍歷循環(huán)拿到之前在AppDelegate中聲明的那個(gè)MMDrawerController屬性,然后判斷是否為打開狀態(tài),如果是就關(guān)閉,否就是打開(初略解釋,里面還有一些條件)

? ? [self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];

}

//添加點(diǎn)擊手勢(shì)? 一個(gè)手指雙擊

-(void)doubleTap:(UITapGestureRecognizer*)gesture{

? ? [self.mm_drawerController bouncePreviewForDrawerSide:MMDrawerSideLeft completion:nil];

}

//添加點(diǎn)擊手勢(shì)? 兩個(gè)個(gè)手指雙擊

-(void)twoFingerDoubleTap:(UITapGestureRecognizer*)gesture{

? ? [self.mm_drawerController bouncePreviewForDrawerSide:MMDrawerSideRight completion:nil];

}

3.在側(cè)滑頁面做一個(gè)表格,每個(gè)cell都是能跳轉(zhuǎn)一個(gè)界面

- (void)viewDidLoad {

? ? [super viewDidLoad];



? ? self.title=@"側(cè)滑頁面";

? ? UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];

? ? tableView.delegate=self;

? ? tableView.dataSource=self;

? ? [self.viewaddSubview:tableView];


? ? arr = @[@"1",@"2",@"3",@"4",@"5"];


}

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{


? ? return 5;

}

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{


? ? staticNSString*CellIdentifier =@"Cell";

? ? UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

? ? if(!cell) {

? ? ? ? cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

? ? }


? ? cell.textLabel.text=arr[indexPath.row];


? ? returncell;

}

-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{



? ? ViewController *vc = [[ViewController alloc]init];

? ? vc.title=arr[indexPath.row];



? ? //拿到我們的LitterLCenterViewController,讓它去push

? ? UINavigationController* nav = (UINavigationController*)self.mm_drawerController.centerViewController;

? ? [navpushViewController:vc animated:NO];

? ? //當(dāng)我們push成功之后,關(guān)閉我們的抽屜

? ? [self.mm_drawerController closeDrawerAnimated:YES completion:^(BOOL finished) {

? ? ? ? //設(shè)置打開抽屜模式為MMOpenDrawerGestureModeNone,也就是沒有任何效果。

? ? ? ? [self.mm_drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeNone];

? ? }];


}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • gihub框架地址:https://github.com/mutualmobile/MMDrawerControl...
    rainbow_H閱讀 503評(píng)論 0 3
  • 一、簡介 <<UITableView(或簡單地說,表視圖)的一個(gè)實(shí)例是用于顯示和編輯分層列出的信息的一種手段 <<...
    無邪8閱讀 10,961評(píng)論 3 3
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,980評(píng)論 1 9
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,244評(píng)論 8 265
  • 一直有一個(gè)不良習(xí)慣:心靜身閑的時(shí)候就會(huì)留心觀察街道、商場(chǎng)、餐廳、酒吧等公共場(chǎng)所的陌生人,猜測(cè)她們的身份、關(guān)系、境遇...
    老樹根茶舍閱讀 269評(píng)論 0 0

友情鏈接更多精彩內(nèi)容