使用滑动手势关闭键盘
Dismiss keyboard with swipe gesture
在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应 scrollViewDidScroll
事件。当您向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?
从 iOS 7 开始,您可以使用
scrollView.keyboardDismissMode = .Interactive
来自文档:
UIScrollViewKeyboardDismissModeInteractive
The keyboard follows the
dragging touch offscreen, and can be pulled upward again to cancel the
dismiss.
在 XCode 属性检查器中,scrollView
有一个 Keyboard
属性。它有 3 个选项。
- 不解雇
- 拖动时关闭
- 关闭互动。
因为 iOS7、UIScrollView
和所有从它继承的 类(包括 UITableView
)都有一个 keyboardDismissMode
属性。对于 Swift 5 和 iOS 12,keyboardDismissMode
具有以下声明:
var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
The manner in which the keyboard is dismissed when a drag begins in the scroll view.
请注意 UIScrollView.KeyboardDismissMode
是一个枚举,它有 none
、interactive
和 onDrag
个案例。
#1。以编程方式设置 keyboardDismissMode
下面的代码片段显示了 keyboardDismissMode
:
的可能实现
override func viewDidLoad() {
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
/* ... */
}
#2。在故事板
中设置keyboardDismissMode
作为上述编程方法的替代方法,您可以在 故事板 中为 UIScrollView
/UITableView
设置 keyboardDismissMode
值.
- Select 你的
UIScrollView
/ UITableView
实例,
- Select 属性检查器,
- 为键盘设置正确的值。
如果您使用 tableView
和 Swift 3 或 Swift 4 ,它的工作原理是:
tableView.keyboardDismissMode = .onDrag
没有 tableview - 是的,它不是滑动,但它没有用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}
在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应 scrollViewDidScroll
事件。当您向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?
从 iOS 7 开始,您可以使用
scrollView.keyboardDismissMode = .Interactive
来自文档:
UIScrollViewKeyboardDismissModeInteractive
The keyboard follows the dragging touch offscreen, and can be pulled upward again to cancel the dismiss.
在 XCode 属性检查器中,scrollView
有一个 Keyboard
属性。它有 3 个选项。
- 不解雇
- 拖动时关闭
- 关闭互动。
因为 iOS7、UIScrollView
和所有从它继承的 类(包括 UITableView
)都有一个 keyboardDismissMode
属性。对于 Swift 5 和 iOS 12,keyboardDismissMode
具有以下声明:
var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
The manner in which the keyboard is dismissed when a drag begins in the scroll view.
请注意 UIScrollView.KeyboardDismissMode
是一个枚举,它有 none
、interactive
和 onDrag
个案例。
#1。以编程方式设置 keyboardDismissMode
下面的代码片段显示了 keyboardDismissMode
:
override func viewDidLoad() {
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
/* ... */
}
#2。在故事板
中设置keyboardDismissMode
作为上述编程方法的替代方法,您可以在 故事板 中为 UIScrollView
/UITableView
设置 keyboardDismissMode
值.
- Select 你的
UIScrollView
/UITableView
实例, - Select 属性检查器,
- 为键盘设置正确的值。
如果您使用 tableView
和 Swift 3 或 Swift 4 ,它的工作原理是:
tableView.keyboardDismissMode = .onDrag
没有 tableview - 是的,它不是滑动,但它没有用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}