LGSideMenuController和splitViewController

时间:2018-08-09 06:52:01

标签: ios iphone swift uinavigationcontroller uisplitviewcontroller

我一直在项目中使用LGSideMenuController,从来没有出现过问题,直到我将它与UISplitViewController一起使用,并且确切地说,当我开始本地化我的App时,确实发生了问题,我确实在gitHub上打开并发出了问题,但我没有寻求帮助,

这是issue

LGSideMenuController带有splitViewController并在iPad上设置了“左视图始终可见”,对于LTR来说一切都很好,但是当我开始将应用程序本地化为RTL时,在主视图和详细信息视图之间出现了一个奇怪的空间,我相信它具有相同的宽度用于侧面菜单。

这是LTR视图的常规视图(侧菜单始终可见+ uisplitViewController):

first

这是RTL和奇怪的空间:

enter image description here

当我更改LGSideMenuController的设置并禁用alwaysVisible选项时,似乎没有空格或其他任何东西都是正常的。

我还尝试了更改侧面菜单,并为RTL使用了右侧菜单,但同样如此。

这是我用于LGSideMenuController的内容:

let navigationController = UINavigationController(rootViewController: viewController)

let sideMenuController = LGSideMenuController(rootViewController: navigationController)
     sideMenuController.leftViewController = leftMenu

    sideMenuController.leftViewWidth = 100.0;
    sideMenuController.leftViewPresentationStyle = .slideAbove

     sideMenuController.leftViewLayerShadowColor = UIColor(red:0.96, green:0.96, blue:0.96, alpha:1.00)
    sideMenuController.leftViewLayerShadowRadius = 4
    sideMenuController.leftViewAlwaysVisibleOptions = [.onPad]

这是我做的临时修复:

在masterViewController-> uitableviewcontroller

    override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()


    if UIDevice.current.userInterfaceIdiom == .pad {
    if LanguageManager.isCurrentLanguageRTL() {

        if changeLayout {

           self.navigationController?.view.frame = CGRect(x: (self.navigationController?.view.frame.origin.x)! - 100, y: (self.navigationController?.view.frame .origin.y)! , width: (self.navigationController?.view.frame .width)! , height: (self.navigationController?.view.frame .height)!)

        }

    }else {

     }

    }

}

当然那是一个不好的看法,该视图不断更新,我不知道何时将其保持为-100,

任何帮助或想法,我该如何解决? 谢谢

0 个答案:

没有答案