ios - 调整嵌入 ScrollView 内的网页 View 的大小

标签 ios sqlite uiwebview uiscrollview

我有一个包含歌曲 HTML 字符串的 sqlite 数据库。

View Controller
在此 View Controller 中,我有一个文本和一个按钮,用户可以在其中输入歌曲编号,还有一个按钮用于发送搜索数据库的请求。

歌曲显示
在这个 View Controller 中,我有一个网页 View 和一个标签都嵌入在 ScrollView 中。我的 WebView 禁用了滚动。

歌词显示,并且 ScrollView 大小正确调整。然而, WebView 并未调整大小,仅显示部分歌词。我知道这一点是因为我的 ScrollView 和网页 View 具有不同的颜色。

ScrollView 顶部 https://www.dropbox.com/s/8hgpi8nlwnca0v8/iOS%20Simulator%20Screen%20shot%20Aug%2022%2C%202013%2C%202.04.24%20PM.png

此处的问题示例, ScrollView 底部 https://www.dropbox.com/s/r8l8d82an613hec/iOS%20Simulator%20Screen%20shot%20Aug%2022%2C%202013%2C%201.57.14%20PM.png

这是我的代码:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
    CGRect frame = aWebView.frame;
    frame.size.height = 1;
    aWebView.frame = frame;

    CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];

    frame.size = fittingSize;

    [self.scroll setContentSize:fittingSize]; //scroll is the name of the scroll view

    aWebView.frame = frame;

    NSLog(@"size: %f" ,fittingSize.height);
}

如何同时调整 Web View 和 ScrollView 的大小?

最佳答案

我通过在detailView内的viewWillAppear中加载内容解决了这个问题 像这样

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self configureView];//<-- here i am call loadHTMLString
}

- (void)configureView
{

    // disabling scroll for webview
    if ([self.detailWebView respondsToSelector:@selector(scrollView)]) {
        self.detailWebView.scrollView.scrollEnabled = NO; // available starting in iOS 5
    } else {
        for (id subview in self.detailWebView.subviews)
            if ([[subview class] isSubclassOfClass: [UIScrollView class]])
                ((UIScrollView *)subview).scrollEnabled = NO;
    }

    // setting content
    if (self.detailItem) {
        self.detailTitle.text = self.detailItem->title;
        //image scaling styles
        NSString *style=@"<style type=\"text/css\">\n"
        "img { \n"
        "   display: block;"
        "   float:none;"
        "   margin:0 auto;"
        "   max-width:100%;"
        "   height:auto;"
        "} \n"
        "</style>\n";

        [self.detailWebView loadHTMLString:[style stringByAppendingString:self.detailItem->content] baseURL:nil];
    }
}

关于ios - 调整嵌入 ScrollView 内的网页 View 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387817/

相关文章:

ios - 抛出异常的 Swift2 闭包

ios - 带有 iOS 9.3.2 的 iPhone 6 上的 UIButton 标题问题

ios - 使用 SKStoreProductViewController 实现和测试应用内安装

php - SQLite:同一 INSERT 语句中的last_insert_rowid()

ios - 使用 touchId 的带有 UIWebview 的 native 应用程序

iphone - 如何将 uitableview 选择与 indexpath 值居中

ios - 在 NSMuttable 数组中添加产品不起作用

mysql - 将行从一个数据库文件复制到另一个数据库文件

iphone - 在 UIWebView 中隐藏键盘

swift - UIWebView 未在 iOS 10 中加载