【问题标题】:Prevent UIWebView to scroll when keyboard appears防止 UIWebView 在键盘出现时滚动
【发布时间】:2012-04-24 17:19:45
【问题描述】:

我有一个 UIWebView 显示一个包含输入字段 () 的页面。

当用户触摸该字段以输入数据时,UIWebView 会向上和向左滚动以使该字段对用户保持可见。好吧。

我不介意它向上滚动(因为我的表单下方的所有内容都被键盘隐藏)但我想阻止视图向左滚动。

有没有办法(html 页面中的标题或 iOS 代码)来防止这种行为?

谢谢

【问题讨论】:

    标签: ios uiwebview


    【解决方案1】:

    不漂亮但有效:

    如果你根本不希望你的 webView 滚动,你可以实现 UIWebView 的 UIScrollViewDelegate 并将 scrollViewDidScroll 上的 contentOffset 设置为 0

    aWebView.scrollView.delegate = self
    
    func scrollViewDidScroll(scrollView: UIScrollView) {
        scrollView.contentOffset = CGPointMake(0, 0)
    }
    

    【讨论】:

    • 在您的解决方案中,webView.scrollView.isScrollEnabled = false 足以避免为此使用委托。虽然,不确定这个答案是否完全涵盖了这个问题。
    【解决方案2】:

    我不知道如何完全防止滚动,但如果你不介意一点抖动,你可以将此处理程序添加到输入字段:

    onfocus="setTimeout('window.scroll(0,0)',100)"
    

    【讨论】:

      【解决方案3】:

      首先,您必须使用 UIKeyboardWillShowNotification 捕获键盘的显示。

      然后将 UIScrollView(UIWebview 的)的 contentSize 宽度限制为屏幕宽度,这将确保屏幕不会水平滚动。

      【讨论】:

        猜你喜欢
        • 2018-05-30
        • 2018-07-26
        • 2011-09-19
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2018-01-15
        • 2020-04-22
        • 2017-08-09
        相关资源
        最近更新 更多