如何在swift 4中消失没有按钮的侧边菜单
Posted
技术标签:
【中文标题】如何在swift 4中消失没有按钮的侧边菜单【英文标题】:How to disappear sidemenu without button in 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. 当侧边菜单打开时添加点击手势关闭。 【参考方案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()
希望这会奏效。
【讨论】:
是的,有什么问题? 感谢您的建议。但我有一些问题。当我单击白页时,侧面菜单消失。但是,当再点击一个按钮时,会出现侧边菜单.. 那你想要什么?请多解释 我只想消失侧边菜单。不会出现侧边菜单。我的意思是当我点击白色背景时,侧面菜单消失,我只想出现关于按钮的侧面菜单 很简单,只需要单独创建两个函数来隐藏和打开侧边菜单。调用第一个打开功能以显示菜单并在点击白色背景时调用隐藏功能。简单以上是关于如何在swift 4中消失没有按钮的侧边菜单的主要内容,如果未能解决你的问题,请参考以下文章