UITapGestureRecognizer 不适用于 UIView 动画
Posted
技术标签:
【中文标题】UITapGestureRecognizer 不适用于 UIView 动画【英文标题】:UITapGestureRecognizer not working on UIView animated 【发布时间】:2017-03-07 17:00:26 【问题描述】:下午好,
我尝试在 UIView 上实现 UITapGestureRecognizer。
我创建了 UITapGestureRecognizer 并像这样分配给我的 UIView。
let gestureGeneral = UITapGestureRecognizer(target: self, action: #selector (self.toConfigurationGeneral(_:)))
self.mode_view.addGestureRecognizer(gestureGeneral)
这是我的配置通用方法:
func toConfigurationGeneral(_ sender:UITapGestureRecognizer)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "ConfigurationGeneralViewController") as! ConfigurationGeneralViewController
self.navigationController?.pushViewController(nextViewController, animated: false)
这段代码运行良好,但是当我在这个 UIView 上添加动画时,我的方法没有被调用。这是我的动画:
UIView.animate(withDuration: 0.5, delay: 0, options: [.curveEaseIn, .repeat, .autoreverse, .allowUserInteraction, .allowAnimatedContent], animations:
self.mode_view.alpha = 0
, completion: nil)
感谢您的回答。
【问题讨论】:
【参考方案1】:当你视图的alpha
设置为0
时,所有GestureRecognizer
都无法使用。
您可以添加一个具有清晰背景颜色的新子视图,与您的mode_view
和mode_view
相同的框架。
并添加GestureRecognizer
。
当您的mode_view
将被隐藏时,新子视图 将调用该方法。
你也可以只在这个清除背景的新子视图上添加手势
【讨论】:
【参考方案2】:当您要使用 GestureRecognizer 时,您需要将视图的 userInteractionEnabled 设置为 true 请确认您的 mode_view.userInteractionEnabled = true
【讨论】:
以上是关于UITapGestureRecognizer 不适用于 UIView 动画的主要内容,如果未能解决你的问题,请参考以下文章
UITapGestureRecognizer 不适用于 UIImageView 自定义类
UITapGestureRecognizer 不适用于 UITextField 的自定义子类
UITapGestureRecognizer 不适用于 UIView 动画
UITapGestureRecognizer 适用于 UIImageView 但不适用于 UILabel