在SWRevealController中更改后视图的宽度

时间:2015-08-30 09:52:21

标签: swrevealviewcontroller

我在故事板中设计了我的观点。 当我滑出菜单时,后视图不会自动调整大小到设备的宽度。

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

感谢

6 个答案:

答案 0 :(得分:9)

class SideMenuViewController: UITableViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    self.revealViewController().rearViewRevealWidth = self.view.frame.width - 64
  }

}

对我有用!

答案 1 :(得分:4)

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

Objective C

    self.revealViewController.rearViewRevealWidth = self.view.frame.size.width-100;

Swift

self.revealViewController().rearViewRevealWidth = self.view.frame.width-100

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

答案 2 :(得分:3)

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

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

它是从这个:

enter image description here

到此:

enter image description here

答案 3 :(得分: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
}

它可以用于任何菜单。希望这有帮助!

答案 4 :(得分:0)

我在我的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

答案 5 :(得分:0)

设置显示宽度属性后,只需将rearViewRevealOverdraw设置为0即可。例如,

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