【问题标题】:Dismiss keyboard with swipe gesture使用滑动手势关闭键盘
【发布时间】:2015-05-05 00:32:33
【问题描述】:

在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应scrollViewDidScroll 事件。向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?

【问题讨论】:

    标签: ios swift uiscrollview


    【解决方案1】:

    iOS 7 起,可以使用

    scrollView.keyboardDismissMode = .Interactive
    

    来自文档:

    UIScrollViewKeyboardDismissModeInteractive

    键盘跟随 将触摸拖出屏幕,再次向上拉可取消 解雇。

    【讨论】:

    • 有没有不使用UIScrollView的方法?
    • @Zorayr 看看我的回答
    • @Zorayr 我刚刚添加了一个滚动视图(确保其中包含的视图的高度大于滚动视图),并且它起作用了。设置背景以清除和隐藏滚动指示器,以便用户看不到它。
    【解决方案2】:

    在 XCode 的属性检查器中,scrollView 有一个 Keyboard 属性。它有 3 个选项。

    • 不要解雇
    • 拖动关闭
    • 关闭互动。

    【讨论】:

      【解决方案3】:

      如果您使用的是 tableViewSwift 3Swift 4,则可以使用:

      tableView.keyboardDismissMode = .onDrag
      

      【讨论】:

        【解决方案4】:

        从 iOS7 开始,UIScroll​View 和所有继承自它的类(包括UITableView)都有一个keyboard​Dismiss​Mode 属性。在 Swift 5 和 iOS 12 中,keyboard​Dismiss​Mode 具有以下声明:

        var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
        

        在滚动视图中开始拖动时关闭键盘的方式。

        请注意,UIScrollView.KeyboardDismissMode 是一个包含 noneinteractiveonDrag 情况的枚举。


        #1。以编程方式设置keyboard​Dismiss​Mode

        下面的代码 sn-p 显示了keyboardDismissMode 的可能实现:

        override func viewDidLoad() {
            super.viewDidLoad()
        
            // Dismiss keyboard when scrolling the tableView
            tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
        
            /* ... */
        }
        

        #2。在故事板中设置keyboard​Dismiss​Mode

        作为上述编程方法的替代方法,您可以在 故事板 中为 UIScrollView/UITableView 设置 keyboard​Dismiss​Mode 值。

        1. 选择您的UIScrollView / UITableView 实例,
        2. 选择属性检查器
        3. 键盘设置正确的值。

        【讨论】:

          【解决方案5】:

          没有 tableview - 是的,它不是滑动,但它不是诀窍

          override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
              view.endEditing(true)
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-02-06
            • 2019-12-07
            • 1970-01-01
            • 2015-05-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多