我在故事板中设计了我的观点。 当我滑出菜单时,后视图不会自动调整大小到设备的宽度。
如何设置视图的宽度以使其与self.revealViewController()定义的宽度匹配.shoteViewRevealWidth?
感谢
答案 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
}
它是从这个:
到此:
答案 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