无法弄清楚如何在同一 ScrollView 中的 WebView 上方添加自定义视图

Posted

技术标签:

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

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

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

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

谢谢,

托马斯

【问题讨论】:

我有点困惑。你是说你想要一个滚动视图中有两个子视图? 是的,最好在顶部有一些自定义视图,在其下方有一个 Web 视图。但是,我希望自定义视图与 Web 视图一起滚动;我不希望能够滚动浏览 Web 视图,同时仍然能够在顶部看到自定义视图。 我想说只是不要使用 webView 并将 scrollView contentSize 设置为所述视图的宽度,然后将高度设置为 customView 和 messageView 的高度之和。 【参考方案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 代替视图是个坏主意。它要慢得多,并且需要初始时间才能加载。我发现它的唯一用途是显示格式化文本。

【讨论】:

以上是关于无法弄清楚如何在同一 ScrollView 中的 WebView 上方添加自定义视图的主要内容,如果未能解决你的问题,请参考以下文章

ScrollView swift 3中的垂直对齐图像

无法弄清楚如何将数据异步推送到数组

DataTables 可编辑无法弄清楚如何删除/更新行

与 Geometry Reader 结合使用时,ScrollView 无法正确滚动(反弹)

Android 房间持久库 - TypeConverter 错误错误:无法弄清楚如何将字段保存到数据库”

如何定位同一图像中的多个对象?