使用滑动手势关闭键盘
在Messages.app中,您可以通过滚动列表视图来关闭键盘。 要清楚,它不仅仅是响应scrollViewDidScroll
事件。 向下滑动时,键盘会用手指跟踪。 知道怎么做的吗?
从iOS 7开始,您就可以使用了
scrollView.keyboardDismissMode = .Interactive
从文档:
UIScrollViewKeyboardDismissModeInteractive
键盘跟随拖动触摸屏幕,可以再次向上拉以取消关闭。
在XCode属性检查器中, scrollView
具有Keyboard
属性。 它有3个选项。
- 不要解雇
- 阻止拖拽
- 解雇互动。
如果您正在使用tableView
和Swift 3或Swift 4 ,它可以使用:
tableView.keyboardDismissMode = .onDrag
没有tableview – 是的,它不是滑动,但它不是技巧
override func touchesBegan(_ touches: Set, with event: UIEvent?) { view.endEditing(true) }
从iOS7开始, UIScrollView
和从它inheritance的所有类(包括UITableView
)都有一个keyboardDismissMode
属性。 使用Swift 3和iOS 10, keyboardDismissMode
具有以下声明:
var keyboardDismissMode: UIScrollViewKeyboardDismissMode { get set }
在滚动视图中拖动开始时键盘被关闭的方式。
请注意, UIScrollViewKeyboardDismissMode
是一个枚举,它none
, interactive
和onDrag
情况。
#1。 以编程方式设置UIScrollViewKeyboardDismissMode
下面的代码片段显示了keyboardDismissMode
的可能实现:
override func viewDidLoad() { super.viewDidLoad() // Dismiss keyboard when scrolling the tableView tableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.interactive /* ... */ }
#2。 在故事板中设置UIScrollViewKeyboardDismissMode
作为上述编程方法的替代方法,您可以在故事板中为UIScrollView
设置UIScrollViewKeyboardDismissMode
值。
- 选择您的
UIScrollView
/UITableView
实例, - 选择属性检查器 ,
- 为键盘设置正确的值。