UIButton Click Event not working if I add UITapGestureRecognizer in swift(如果我在 swift 中添加 UITapGestureRecognizer,则 UIButton 单击事件不起作用)
问题描述
在我的登录页面上,如果我专注于 UITextEdit 以输入电子邮件和密码,则会出现键盘并向上滚动登录页面.如果我触摸键盘外部,我会添加此代码以删除键盘.
On my login page, if I focus to UITextEdit for entering email and password, keyboard appears and login page scroll up. And I add this code for remove keyboard if I touch outside of keyboard.
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
UIView.animate(withDuration: 0.3, animations: {
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
})
}
}
在我的 viewDidLoad() 函数中,我是这样添加的.
And on my viewDidLoad() function, I added it like this.
override func viewDidLoad()
{
super.viewDidLoad()
//TODO
self.hideKeyboardWhenTappedAround()
...
}
效果很好,但是如果我在键盘仍然打开时单击登录按钮,dismisskeyboard() 函数可以工作,但 btnClick 函数不起作用.
It works well, But If I click login button when keyboard is still opening, dismisskeyboard() function works but btnClick function doesn't work.
@IBAction func LoginBtnClick(_ sender: Any)
{
print("loginBtn")
//...
}
我该如何解决这个问题?
How can I solve this problem?
推荐答案
不要在主viewController的视图中添加手势 在UIButton下面添加全屏子视图并添加手势
Don't add the gesture to main viewController's view add a full screen subview below UIButton and add the gesture to it
这篇关于如果我在 swift 中添加 UITapGestureRecognizer,则 UIButton 单击事件不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如果我在 swift 中添加 UITapGestureRecognizer,则 UIButton 单击事件不起作用
基础教程推荐
- Android Volley - 如何动画图像加载? 2022-01-01
- iOS - UINavigationController 添加多个正确的项目? 2022-01-01
- SwiftUI-ScrollViewReader的ScrollTo不滚动 2022-01-01
- 为什么姜饼模拟器方向卡在应用程序中? 2022-01-01
- 如何将图像从一项活动发送到另一项活动? 2022-01-01
- UIImage 在开始时不适合 UIScrollView 2022-01-01
- 如何比较两个 NSDate:哪个是最近的? 2022-01-01
- Xcode UIView.init(frame:) 只能在主线程中使用 2022-01-01
- navigationItem.backBarButtonItem 不工作?为什么上一个菜单仍然显示为按钮? 2022-01-01
- Play 商店的设备兼容性问题 2022-01-01
