【问题标题】:How to disappear sidemenu without button in swift 4如何在swift 4中消失没有按钮的侧边菜单
【发布时间】:2018-04-17 06:03:19
【问题描述】:

我有一些问题。我在 swift4 中制作了侧边菜单。

当我单击按钮时,侧面菜单会出现和消失。

但我想让没有按钮的侧边菜单消失。

例如,当我点击另一个视图(不是侧边菜单)时,侧边菜单消失。

我的代码是这样的。

class ContainerVC: UIViewController {

@IBOutlet weak var constaint: NSLayoutConstraint!
var sideMenuOpen = false

override func viewDidLoad() {
    super.viewDidLoad()

    NotificationCenter.default.addObserver(self,  selector: #selector(toggleSideMenu), name: NSNotification.Name("ToggleSideMenu"), object: nil)
}

@objc func toggleSideMenu(){

    if sideMenuOpen {

        sideMenuOpen = false
        constaint.constant = -130

    }else {
        sideMenuOpen = true
        constaint.constant = 0

    }
    UIView.animate(withDuration: 0.3){
        self.view.layoutIfNeeded()
    }
}

当我单击白色背景(视图)时,侧面菜单消失。 谢谢。

【问题讨论】:

  • 使用委托方法。
  • 您可以使用点击手势
  • 使用滑动手势。
  • 1.使用滑动手势 2. 当侧边菜单打开时添加点击手势关闭。

标签: ios swift swift4 side-menu


【解决方案1】:

您可以使用类似的代码,请在 viewDidLoad() 中添加以下代码

let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss(fromGesture:)))
    self.view.addGestureRecognizer(tap)

然后创建一个dismiss函数

@objc func OpenSideMenu(){
    sideMenuOpen = true
    constaint.constant = 0
    UIView.animate(withDuration: 0.3){
        self.view.layoutIfNeeded()
    }
}

@objc func closeSideMenu(){
    sideMenuOpen = false
    constaint.constant = -130
    UIView.animate(withDuration: 0.3){
        self.view.layoutIfNeeded()
    }
}

@objc func dismiss(fromGesture gesture: UISwipeGestureRecognizer) {
    closeSideMenu()
}

希望这会奏效。

【讨论】:

  • 是的,有什么问题?
  • 感谢您的建议。但我有一些问题。当我单击白页时,侧面菜单消失。但是,当再点击一个按钮时,会出现侧边菜单..
  • 那你想要什么?请多解释
  • 我只想消失侧边菜单。不会出现侧边菜单。我的意思是当我点击白色背景时,侧面菜单消失,我只想出现关于按钮的侧面菜单
  • 很简单,只需要单独创建两个函数来隐藏和打开侧边菜单。调用第一个打开功能以显示菜单并在点击白色背景时调用隐藏功能。简单
猜你喜欢
  • 2015-06-06
  • 2014-07-22
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多