【问题标题】:UIWebView within a UIScrollView like the Apple Mail.appUIScrollView 中的 UIWebView,如 Apple Mail.app
【发布时间】:2015-04-22 13:38:15
【问题描述】:

我正在尝试创建一个类似于您在 Apple iOS Mail.app 中阅读电子邮件时看到的视图,您可以在其中捏住视图中的任意位置以放大和缩小 UIWebView,并且顶部的标题保持不变大小一样。

此外,向上/向下滚动应该滚动整个视图,而不仅仅是 UIWebView。 左右滚动只左右滚动UIWebView,不影响header。

我已经尝试将 UITableView 与 UIWebView 一起用作单元格内的视图或页眉/页脚视图,但滚动和缩放无法正常工作。

我现在正试图将 UIWebView 放在 UIScrollView 中,但似乎也无法以这种方式使滚动正常工作,但这似乎是比将 UIWebView 放在 UITableViewCell 中更好的方法。

这是我试图创建的视图层次结构的简单表示:

UIScrollView
-- UIView (this is the "header" view)
-- UIWebView

我不确定是否需要禁用 UIWebView 的滚动/缩放,或者如何处理容器 UIScrollView 或 UIWebView 内部滚动视图的滚动事件。

提前感谢您提供任何示例和建议!如果我遗漏了任何细节,请告诉我。

【问题讨论】:

  • UIWebViews 自然有一个滚动视图组件。您可以使用self.webView.scrollView 访问它们
  • 是的,我知道 webview 的滚动视图。您是否建议在此处插入子视图?这可能会扰乱 webview 的内部结构,这似乎是个坏主意。

标签: ios objective-c iphone uiwebview uiscrollview


【解决方案1】:

我不知道您是否已经找到了解决问题的方法,但我也遇到了同样的问题,我想分享我的解决方案。

我实现了一个自定义UIWebView,其行为与本机邮件应用程序相同。 也许它会为某人节省一些宝贵的时间:) 我知道我希望在我挣扎的时候有这样的事情。

这是项目的链接:https://github.com/catalinaturlea/HeaderWebView

如果您发现任何问题或考虑任何改进,请告诉我。

【讨论】:

    【解决方案2】:

    只要您知道 web 视图包含滚动视图就可以了,但我建议以下内容,并且它曾经对我有用:

    在滚动视图和其中的其他元素(包括 Web 视图)之间添加一个 UIView,让 iOS 处理其余的东西(手势和滚动事件)

    UIScrollView
    -- UIView (Just a wrapper as big as the content of the scroll view)
       -- UIView (this is the "header" view)
       -- UIWebView
    

    【讨论】:

    • 谢谢!我会试一试并报告。您是否有机会分享对您有用的代码?
    • 我的意思是这个概念适合我,我只需添加一个 UIView,它与我的可滚动内容需要一样大,并将其添加到滚动视图中,然后将我的内容添加到其中
    • 这将如何允许缩放和平移 web 视图,同时允许标题视图保持相同的大小和滚动视图中的相同位置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多