【发布时间】:2015-11-24 13:03:28
【问题描述】:
我在情节提要中设计了我的观点。 当我滑出菜单时,后视图不会自动调整到设备的宽度。
如何设置视图的宽度,使其与 self.revealViewController().rearViewRevealWidth 定义的宽度相匹配?
谢谢
【问题讨论】:
-
你能发布一些你正在寻找什么的截图吗?
我在情节提要中设计了我的观点。 当我滑出菜单时,后视图不会自动调整到设备的宽度。
如何设置视图的宽度,使其与 self.revealViewController().rearViewRevealWidth 定义的宽度相匹配?
谢谢
【问题讨论】:
只需在设置显示宽度属性后立即将 backViewRevealOverdraw 设置为 0。例如,
self.revealViewController().rearViewRevealWidth = 300 //put the width you need
self.revealViewController().rearViewRevealOverdraw = 0
【讨论】:
将此代码添加到菜单控制器中
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
}
它可以与任何菜单一起使用。希望对您有所帮助!
【讨论】:
我在我的 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
【讨论】:
class SideMenuViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().rearViewRevealWidth = self.view.frame.width - 64
}
}
它对我有用!
【讨论】:
在您的菜单栏视图控制器上粘贴 viewdidload 方法的行下
Objective C
self.revealViewController.rearViewRevealWidth = self.view.frame.size.width-100;
Swift
self.revealViewController().rearViewRevealWidth = self.view.frame.width-100
代码在所有屏幕上都能正常工作。
【讨论】: