【问题标题】:changing the width of the rear view in SWRevealController在 SWRevealController 中更改后视图的宽度
【发布时间】:2015-11-24 13:03:28
【问题描述】:

我在情节提要中设计了我的观点。 当我滑出菜单时,后视图不会自动调整到设备的宽度。

如何设置视图的宽度,使其与 self.revealViewController().rearViewRevealWidth 定义的宽度相匹配?

谢谢

【问题讨论】:

  • 你能发布一些你正在寻找什么的截图吗?

标签: swrevealviewcontroller


【解决方案1】:

只需在设置显示宽度属性后立即将 backViewRevealOverdraw 设置为 0。例如,

self.revealViewController().rearViewRevealWidth = 300 //put the width you need   
self.revealViewController().rearViewRevealOverdraw = 0

【讨论】:

    【解决方案2】:

    将此代码添加到菜单控制器中

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        self.view.frame.size.width = self.revealViewController().rearViewRevealWidth
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.view.frame.size.width = self.revealViewController().rearViewRevealWidth
    }
    

    它可以与任何菜单一起使用。希望对您有所帮助!

    【讨论】:

      【解决方案3】:

      我在我的 MasterController 的 viewDidLoad 中编写了 di swift 3 语句,我在其中以编程方式配置 SWRevealViewController(FrontController 和 RearController)并将 SWRevealViewController() 分配给 UIApplication.shared.delegate!.window?.rootViewController,但它会工作也在你的初始 UIViewController 的 viewDidLoad 中

      let revealController = SWRevealViewController()
      
      // settings to show full screen menu
      
      // set width menu to screen size 
      revealController.rearViewRevealWidth = self.view.frame.width 
      // hide totally shadow 
      revealController.frontViewShadowOffset = CGSize.zero 
      revealController.frontViewShadowOpacity = 0 
      
      // optional settings
      
      // no overdraw when dragging
      revealController.rearViewRevealOverdraw = 0
      
      // no displacement when animating or dragging the content
      revealController.rearViewRevealDisplacement = 0
      

      【讨论】:

        【解决方案4】:

        当我偶然发现这个问题时,我认为 Ant 正在寻找的与我试图做的相同:使后视图控制器的大小与后视图宽度相同(在我的情况下,我希望这种情况发生,因为我具有必须在后视图中居中的 UI 元素)。这对我有用:

        override func viewDidAppear(_ animated: Bool) {
                self.view.frame.size.width = self.revealViewController().rearViewRevealWidth
            }
        

        从这里开始:

        对此:

        【讨论】:

          【解决方案5】:
          class SideMenuViewController: UITableViewController {
          
            override func viewDidLoad() {
              super.viewDidLoad()
              self.revealViewController().rearViewRevealWidth = self.view.frame.width - 64
            }
          
          }
          

          它对我有用!

          【讨论】:

            【解决方案6】:

            在您的菜单栏视图控制器上粘贴 viewdidload 方法的行下

            Objective C
            
                self.revealViewController.rearViewRevealWidth = self.view.frame.size.width-100;
            
            Swift
            
            self.revealViewController().rearViewRevealWidth = self.view.frame.width-100
            

            代码在所有屏幕上都能正常工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-01-18
              • 1970-01-01
              • 2012-08-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-23
              • 1970-01-01
              相关资源
              最近更新 更多