添加手势识别器

Posted

技术标签:

【中文标题】添加手势识别器【英文标题】:Add Gesture Recogniser 【发布时间】:2019-03-27 19:31:45 【问题描述】:

由于某种原因,手势识别器不起作用,它不会使背景再次正常。如何修复它以使选择器 (self.dissmissMenu) 起作用?

在视图控制器中:

let menu = Menu()
@IBAction func menuButton(sender: AnyObject)    
     menu.runMenu()  

在菜单中:

import UIKit

class Menu: NSObject 
    let dimming = UIView()

    public func runMenu()
        if let window = UIApplication.sharedApplication().keyWindow
            dimming.frame = window.frame
            dimming.backgroundColor = UIColor(white: 0, alpha: 0.5)
            dimming.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector(self.dissmissMenu())))

            window.addSubview(dimming)

            UIView.animateWithDuration(0.5, animations: 
                self.dimming.alpha = 1
            )
        
    

    public func dissmissMenu()
        UIView.animateWithDuration(0.5, animations: 
            self.dimming.alpha = 0
        )
    

【问题讨论】:

为什么要重复:***.com/questions/52946326/tap-gesture-not-detected? 你能帮忙吗?没有回答我以为它被删除了我想刷新它请帮助我 不,因为我不知道你的问题。但不要重复问题。如果人们发表评论,他们至少会尽力提供帮助,如果他们询问有关 var 值或其他内容的更多信息,至少提供它。 我提供了所有没有人帮助的信息 “没有人有解决方案” 当人们发表评论时,通常他们会试图帮助获取更多信息,或者至少是为了另一个可以看到你的问题的人。但是你的问题只有4个小时。人们有工作要做、睡觉等等。 【参考方案1】:

尝试像这样重写对addGestureRecognizer的调用:

dimming.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(dissmissMenu())))

【讨论】:

nope 不能与#selector 一起使用,因为它的 swift 2 不是 swift 3 Swift 2.2 有它。 navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(addNewFireflyRefernce)) func addNewFireflyReference() gratuitousReferences.append("诅咒你突然但不可避免的背叛!") 这是来自swift.org/blog/swift-2-2-new-features 它出现了一个错误,在 # 之前出现了预期的“,”分隔符 你真的必须使用 Swift 2 吗? 然后当我尝试添加一个''时,会出现另一个错误,说明表达式列表中的预期表达式

以上是关于添加手势识别器的主要内容,如果未能解决你的问题,请参考以下文章

将向上滑动手势识别器添加到模态视图

Xamarin.Forms 第23局:手势识别

在SpriteKit中使用平移手势识别器

UICollectionView:将单击手势识别器添加到补充视图

将滑动手势识别器添加到 DetailViewContoller

为activity添加左右手势识别