如何正确配置 MMDrawerController

How to configure MMDrawerController properly

我正在使用 MMDrawerController 在我的 iOS 应用程序中创建幻灯片菜单。菜单运行良好,但我遇到了一些麻烦。我的菜单是 ViewControllerTableView 以及非常轻的 4 个自定义单元格。

  1. 我的应用程序现在有顶部栏 - 我不知道如何关闭它。
  2. 我有显示菜单的按钮。当我用手指在屏幕上滑动打开菜单时,菜单看起来很好,但是当我第一次使用 运行 应用程序并按下此按钮时,菜单打开时会出现一些视觉延迟。似乎菜单没有完全加载 - 所以它首先显示在屏幕顶部附近,然后在适当的位置下降。只有在我第一次使用按钮打开菜单时才会发生这种情况。这是动作。

    @IBAction func showMenu(sender: AnyObject) 
    {
      var appDelegate : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
      appDelegate.centerContainer?.toggleDrawerSide(MMDrawerSide.Left, animated: true, completion: nil)
    }
    
  3. 如何设置菜单的宽度?我的菜单很宽,也许可以定制小一些。

  1. 要隐藏状态栏,您可以使用

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    

    或swift版本

    UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
    
  2. 您可能在 viewDidLoad 中做了太多初始化工作,这就是它有点滞后的原因。

  3. 您可以使用

    @property (nonatomic, assign) CGFloat maximumLeftDrawerWidth;
    

    属性设置最大宽度。

  1. 可能是mmdrawer的navigation controller问题,需要隐藏这些controller的navigation bar

    [navigationController setNavigationBarHidden:YES];
    

    Swift版本:

    navigationController?.setNavigationBarHidden(navigationController?.navigationBarHidden == false, animated: true)
    

    MMDrawer 有三个导航控制器用于中心、右侧和左侧 VC,因此根据您的使用情况,您可以隐藏您正在使用的导航控制器的导航栏。

  2. 这应该可以正常工作,正如您所说,当您通过滑动屏幕打开视图时它可以正常工作,在我的情况下,这两种情况都可以正常工作。正如@Majster 所说 "You probably do too much init stuff in the viewDidLoad and that's why it lags a bit." 可能是这样。

  3. 您可以使用

    [drawerController setMaximumRightDrawerWidth:[UIScreen mainScreen].bounds.size.width/4];
    
    抽屉获得屏幕的 1/4。