iOS學習筆記19-抽屜MMDrawerController使用


今天寫qq的模仿項目,找到一個比較簡單的第三方框架

MMDrawerController

 

下面簡單介紹一下 

MMDrawerController的使用

預覽效果如圖

 

 

創建一個抽屜視圖

UIViewController * leftDrawer = [[UIViewController alloc] init]; UIViewController * center = [[UIViewController alloc] init]; UIViewController * rightDrawer = [[UIViewController alloc] init]; MMDrawerController * drawerController = [[MMDrawerController alloc] initWithCenterViewController:center leftDrawerViewController:leftDrawer rightDrawerViewController:rightDrawer];



打開的手勢枚舉
  • MMOpenDrawerGestureMode

    • MMOpenDrawerGestureModePanningNavigationBar: The user can open the drawer by panning anywhere on the navigation bar.
    • MMOpenDrawerGestureModePanningCenterView: The user can open the drawer by panning anywhere on the center view.
    • MMOpenDrawerGestureModeBezelPanningCenterView: The user can open the drawer by starting a pan anywhere within 20 points of the bezel.
    • MMOpenDrawerGestureModeCustom: The developer can provide a callback block to determine if the gesture should be recognized. More information below.




下面介紹一個簡單的小栗子

// 第一步在AppDelegate.h中

@property (strong ,nonatomic) MMDrawerController * drawerController;

// 然后創建,這里是左中右三個頁面,每個頁面都用UINavigationController包一層如下

UINavigationController *rightNavi = [[UINavigationController alloc]initWithRootViewController:_search];

 

    [rightNavi setRestorationIdentifier:@"RightNavigationControllerRestorationKey"];

 

    _drawerController = [[MMDrawerController alloc]

 

                         initWithCenterViewController:center

 leftDrawerViewController:leftNavi

 

                         rightDrawerViewController:rightNavi];

    [self.drawerController setShowsShadow:NO];

 

    [self.drawerController setRestorationIdentifier:@"MMDrawer"];

// 設置右邊頁面顯示寬度,左邊同理

[self.drawerController setMaximumRightDrawerWidth:ScreenWidth];

// 左右滑動,三個頁面間切換

    [self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

    [self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

// 設為根視圖

 

[self.window setRootViewController:_drawerController];

// 需要注意的是如果使用按鈕實現push,pop功能,在左中右三個頁面上不能使用self.navigationcontroller.pushviewcontroller而是使用mm自帶的 中間頁面可用如下代碼

[self.mm_drawerController openDrawerSide:MMDrawerSideLeft

 

                                    animated:YES

 

                                  completion:^(BOOL finished) {

 

        

 

    }];

// openDrawerSide 指的是方向 功能同上面手勢功能一樣

// 左右頁面對應使用返回,例如寫在左上角的返回按鈕的點擊事件里如下

//[button addTarget:self action:@selector(clickLeft) //forControlEvents:UIControlEventTouchUpInside];

 

 //   UIBarButtonItem* backItem = [[UIBarButtonItem alloc] //initWithC

ustomView:button];

 

    

 

    [self.navigationItem setLeftBarButtonItem:backItem];

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

 

    }];

 

 

代碼見 github:https://github.com/Disneydusunan/6-TEST--MMDWRAWER-




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM