UIWebView - 自动调整大小,以便不需要滚动(在 webView 本身中)
我正在尝试使用 UIWebView 来显示高于 iPhone 屏幕的内容,而不需要在 UIWebView 本身中滚动。
UIWebView
被放置为 UIScrollView
的子视图,以及我希望 UIScrollView
上下滚动的一些其他对象 UIWebView
。
我知道您可以使用 UITextView
来做到这一点,如下所示:
CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame;
但是 UIWebView
不是从 UIScrollView
继承的,因此不包含 contentSize
-属性。
我真的很想将其保留为 UIWebView
,因为我获得的数据位于 HTML 块中。
谢谢你!
I'm trying to use a UIWebView
for displaying content higher than the screen of the iPhone, without needing to scroll in the UIWebView
itself.
The UIWebView
is placed as a subview to a UIScrollView
, along with some other objects that I want the UIScrollView
to scroll up and down with the UIWebView
.
I know you can do this with a UITextView
like this:
CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame;
But the UIWebView
does not inherit from UIScrollView
and does therefore not contain the contentSize
-property.
I'd really like to keep it a UIWebView
, because the data I get is in HTML-blocks.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
事实上,不需要Javascript!
在 UIView 中,有一个很好的方法:
你向它传递任何东西(这里没有真正的意义),它返回它想要的大小,使用它的内容(子视图等)来计算大小。
当然,由于 UIWebView 中的内容加载是异步的,因此您应该在 webview 加载后执行此操作,例如在 UIWebViewDelegate 方法中:
等等瞧!
In fact, no Javascript is needed!
In UIView there is a nice method:
You pass it anything (not really meaningful here), and it returns the size it'd like to be, using its content (subviews, etc) to compute the size.
Of course, since content loading in a UIWebView in asynchronous, you should do this after the webview has loaded, for instance in the UIWebViewDelegate method:
Et voila!
我认为您能够做到这一点的唯一方法是使用一些 javascript 来获取网页的大小并调整 UIWebView 控件的大小。
像下面这样的东西应该可以解决问题
您可能需要在内容高度中添加某种软糖系数。
I think the only way you'll be able to do this is to use some javascript to get the size of the web page and adjust the size of the UIWebView control.
Something like the following should do the trick
You may need to add some sort of fudge factor to the content height.