繁体   English   中英

如何使用SWRevealViewController禁用边栏菜单中的交互

[英]How to Disable Interaction in Sidebar Menu using SWRevealViewController

我遵循了AppCoda.com上的补充工具栏菜单教程,但遇到了问题。 当用户在菜单中时,我想禁用用户交互。 目前,尽管处于菜单中,用户仍可以与主屏幕进行交互。

链接到问题的屏幕截图: http : //i.imgur.com/1gld2bY.gifv

将此代码放在TableViewController中,即菜单项控制器中。 本质上,这是将位于主视图后面的视图控制器。

这也会使您的主视图变暗,如果您不希望这样做,则将alpha分量设置为0。

let darkView = UIView()

override func viewWillAppear(_ animated: Bool) {

    darkView.addGestureRecognizer(revealViewController().tapGestureRecognizer())
    darkView.backgroundColor = UIColor.black.withAlphaComponent(0.7)
    darkView.frame = self.revealViewController().frontViewController.view.bounds
    self.revealViewController().frontViewController.view.addSubview(darkView)
}

override func viewWillDisappear(_ animated: Bool) {
    darkView.removeFromSuperview()
}

如果您将SWRevealViewController用于边栏。 使用以下代码

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) {
let tagId = 4207868622

if revealController.frontViewPosition == FrontViewPosition.Right {
    let lock = self.view.viewWithTag(tagId)
    UIView.animateWithDuration(0.25, animations: {
            lock?.alpha = 0
        }, completion: {(finished: Bool) in
            lock?.removeFromSuperview()
        }
    )
    lock?.removeFromSuperview()
} else if revealController.frontViewPosition == FrontViewPosition.Left {
    let lock = UIView(frame: self.view.bounds)
    lock.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
    lock.tag = tagId
    lock.alpha = 0
    lock.backgroundColor = UIColor.blackColor()
    lock.addGestureRecognizer(UITapGestureRecognizer(target: self.revealViewController(), action: "revealToggle:"))
    self.view.addSubview(lock)
    UIView.animateWithDuration(0.75, animations: {
            lock.alpha = 0.333
            }
        )
    }
}

注意 :不要忘记在您的视图控制器中添加self.revealViewController().delegate = self ,否则不会调用该委托

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM