【问题标题】:setting contentOffset and calling loadHTMLWithString resets it设置 contentOffset 并调用 loadHTMLWithString 重置它
【发布时间】:2012-03-26 16:19:50
【问题描述】:

我有一个 UIWebView,我想设置 contentOffset,之后我调用了 loadHTMLWithString,它重置了我设置的 contentOffset,有什么办法可以避免这种情况吗?

【问题讨论】:

    标签: iphone objective-c ios ipad uiwebview


    【解决方案1】:

    我针对同一个问题尝试了几种解决方法,但 setContentOffset 似乎不适用于 UIVebView。有些东西总是将其重置为 (0,0)。

    最后 setContentInset 属性对我帮助很大:

    [self.webView.scrollView setContentInset:UIEdgeInsetsMake(0.0, 0.0, 0.0, 160.0)];
    

    然后使用 UIWebViewDelegate 并在方法中设置内容偏移:

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        [self.webView.scrollView setContentOffset:CGPointMake(160, 0)];
    }
    

    【讨论】:

      【解决方案2】:

      如果我猜对了,你先设置contentOffset 然后再设置loadHTMLString:

      为什么不反过来呢?

      【讨论】:

      • 因为当我这样做时它会动画并且我不想看到转换
      • 是的,而且看起来更糟,因为它突然出现
      • 所以你想动画(比如说)到顶部,然后重新加载页面,然后滚动回原来的位置?您可以在UIScrollViewDelegate 中使用scrollViewDidEndScrollingAnimation:
      猜你喜欢
      • 2022-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 2012-06-07
      • 2014-04-26
      相关资源
      最近更新 更多