【问题标题】:Trouble figuring out how to add a custom view above WebView within the same ScrollView无法弄清楚如何在同一 ScrollView 中的 WebView 上方添加自定义视图
【发布时间】:2012-06-06 19:19:54
【问题描述】:

我正在尝试创建一个界面类似于 iPhone 上的邮件应用程序的应用程序。当您在内置邮件应用程序上查看电子邮件时,它会在邮件之前的区域中显示发件人/收件人信息以及主题。我正在考虑将 WebView 用于消息部分,但我想不出一种方法让一些自定义视图出现在 WebView 上方,同时仍在同一个 ScrollView 中。

实现这一点的最佳方法是什么?对我来说,最好的选择似乎是在 HTML/CSS 的顶部生成“自定义视图”,然后简单地附加消息的 HTML。我曾考虑尝试将带有另一个视图的 WebView 放在 ScrollView 中,但这似乎违反了 Apple 的设计准则。

任何想法或建议都会很棒。

谢谢,

托马斯

【问题讨论】:

  • 我有点困惑。你是说你想要一个滚动视图中有两个子视图?
  • 是的,最好在顶部有一些自定义视图,在其下方有一个 Web 视图。但是,我希望自定义视图与 Web 视图一起滚动;我不希望能够滚动浏览 Web 视图,同时仍然能够在顶部看到自定义视图。
  • 我想说只是不要使用 webView 并将 scrollView contentSize 设置为所述视图的宽度,然后将高度设置为 customView 和 messageView 的高度之和。

标签: ios cocoa-touch storyboard


【解决方案1】:

我认为这不违反 Apple 准则。

在你的情况下我会做以下事情。

首先创建滚动视图

在其中放置您的固定高度标题(带有主题等...)

然后在滚动视图中放置一个 webView ,其 y 偏移量是您的标题高度。

webView 加载完成后调用[webView sizeToFit];(调整视图大小,尽量不裁剪子视图)

也许您必须再次设置 y 偏移量 (frame.origin.y=offset)

然后将scrollview内容大小设置为两个高度之和:

scrollView.contentSize=CGSizeMake(width, headerView.frame.size.height + webview.frame.size.height);

我对@9​​87654324@ 将要做什么并不是很有信心。我读过你也可以使用 [webView sizeThatFits:CGSizeZero]; 。它显然会返回 webView 所需的大小。

您只需将 webviews 帧大小更改为该函数的返回值,并使用与以前相同的 contentsize 语句。

希望这有帮助

PS:我认为使用 html 代替视图是个坏主意。它要慢得多,并且需要初始时间才能加载。我发现它的唯一用途是显示格式化文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2020-03-26
    • 2012-12-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多