Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何正确配置MMDrawerController_Ios_Iphone_Swift_Mmdrawercontroller - Fatal编程技术网

Ios 如何正确配置MMDrawerController

Ios 如何正确配置MMDrawerController,ios,iphone,swift,mmdrawercontroller,Ios,Iphone,Swift,Mmdrawercontroller,我正在使用MMDrawerController在iOS应用程序中创建幻灯片菜单。菜单很好用,但我有一些问题。我的菜单是ViewController,带有TableView,带有非常轻的4个自定义单元格 我的应用程序现在有了顶栏-我不知道如何关闭它 我有显示菜单的按钮。当我用手指在屏幕上滑动打开菜单时,它看起来很好,但当我第一次运行应用程序并按下此按钮时,菜单打开时会有一些视觉延迟。似乎菜单并没有完全加载-所以它首先显示在屏幕顶部附近,然后在适当的位置下降。只有当我第一次用按钮打开菜单时,才会发生

我正在使用
MMDrawerController
在iOS应用程序中创建幻灯片菜单。菜单很好用,但我有一些问题。我的菜单是
ViewController
,带有
TableView
,带有非常轻的4个自定义单元格

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

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

  • 要隐藏状态栏,可以使用

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    
    还是swift版本

    UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
    
  • 您可能在
    viewDidLoad
    中执行了太多的init操作,这就是它有点滞后的原因

  • 你可以使用

    @property (nonatomic, assign) CGFloat maximumLeftDrawerWidth;
    
    属性设置最大宽度

  • 这可能是由于mmdrawer的导航控制器造成的,为此,您需要隐藏这些控制器的导航栏

    [navigationController setNavigationBarHidden:YES];
    Swift版本:

    navigationController?.setNavigationBarHidden(navigationController?.navigationBarHidden == false, animated: true)
    MMDrawer有三个导航控制器,分别用于中央、右侧和左侧VCs,因此,根据您的使用情况,您可以隐藏导航栏以显示您正在使用的导航控制器

  • 这应该可以很好地工作,就像你说的,当你通过滑动屏幕打开视图时,它可以很好地工作,在我的例子中,这两种情况都可以。正如@Majster所说,“你可能在viewDidLoad中做了太多的初始化工作,这就是为什么它有点滞后的原因。”可能就是这样

  • 你可以用 用于抽屉获取屏幕的1/4


  • 非常感谢。初始控制器的viewDidload只有init方法。你能告诉我把这个代码放在哪里吗?你可能知道如何用swift写它-我对ios开发人员很陌生)我改变了答案,所以它显示了隐藏状态栏的swift代码。至于延迟,您能否在抽屉视图中发布更多关于您正在设置的内容的代码?当你在主线程上做了太多的工作时,就会出现延迟,所以这可能是很昂贵的。你能告诉我如何从IBAction关闭菜单吗?我使用了这个[app.drawerController-toggleDrawerSide:MMDrawerSideLeft-animated:true-completion:nil];但它只是打开菜单,您可以使用
    [app.drawerController closedraveranimated:YES completion:nil]您需要将隐藏导航栏的代码放在初始化MMDrawerController的位置。2)和我的ViewController以及它的viewDidLoad都是默认值。从toggleDrawerSide方法运行时,加载方法可能有问题?请是appDelegate.centerContainer?.toggleDrawerSide(MMDrawerSide.Left,动画:true,完成:nil)关闭菜单?因为在我的例子中,它只是打开它
    
    [drawerController setMaximumRightDrawerWidth:[UIScreen mainScreen].bounds.size.width/4];