iphone - UIWebView - 自动调整大小,以便不需要滚动(在 webView 本身中)

标签 iphone uiwebview uiscrollview uitextview autoresize

我尝试使用 UIWebView 显示高于 iPhone 屏幕的内容,而不需要在 UIWebView 本身中滚动。

UIWebView 被放置为 UIScrollView 的 subview ,以及我希望 UIScrollView 上下滚动的一些其他对象 UIWebView

我知道你可以使用 UITextView 来做到这一点,如下所示:

CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame;

但是 UIWebView 不是从 UIScrollView 继承的,因此不包含 contentSize 属性。

我真的很想将其保留为 UIWebView,因为我获取的数据位于 HTML block 中。

谢谢!

最佳答案

事实上,不需要Javascript! 在UIView中有一个很好的方法:

- (CGSize)sizeThatFits:(CGSize)size

你向它传递任何东西(在这里没有真正的意义),它会返回它想要的大小,使用它的内容( subview 等)来计算大小。

当然,由于 UIWebView 中的内容加载是异步的,因此您应该在 Webview 加载后执行此操作,例如在 UIWebViewDelegate 方法中:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGSize size = [webView sizeThatFits: CGSizeMake(1.0f, 1.0f)]; // Pass about any size
    CGRect frame = webView.frame;
    frame.size.height = size.height;
    webView.frame = frame;
}

瞧瞧!

关于iphone - UIWebView - 自动调整大小,以便不需要滚动(在 webView 本身中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978042/

相关文章:

iphone - Objective C - UIWebview 只加载网页的特定部分?

ios - 如何查找 webview 中的滚动位置是否滚动到末尾或顶部?

ios - 自定义 View 在 ScrollView 内滚动

iphone - 更改 UITableViewCellAccessoryCheckmark 和 UITextField 的颜色

iphone - 以 Facebook SSO 身份验证的用户身份加载 iPhone WebView ?

iphone - 有什么方法可以操纵录制的音频吗?

iphone - UIWebView 复制粘贴

ios - UIScrollerView 内的 UIView 以 -64 偏移量显示

iOS 以编程方式显示基于当前用户的 View Controller

ios - 状态恢复时 Root View Controller 显示短暂