2

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

ViewController
在这个视图控制器中,我有一个文本和一个按钮,用户在其中输入歌曲编号和一个按钮,用于发送搜索数据库的请求。

SongDisplay
在这个视图控制器中,我有一个 web 视图和一个标签,它们都嵌入在滚动视图中。我的网页视图禁用了滚动。

歌词显示,并且滚动视图正确调整大小。然而,网络视图并没有被调整大小,只显示了一些歌词。我知道这一点,因为我有不同颜色的滚动视图和 web 视图。

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

这里的问题示例,滚动视图的底部 https://www.dropbox.com/s/r8l8d82an613hec/iOS%20Simulator%20Screen%20shot%20Aug%2022%2C%202013%2C%201.57.1​​4%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 视图和滚动视图都调整大小?

4

3 回答 3

0

当 OS X Mavericks 正式发布时,该问题自行解决。之前的问题可能是由于 beta 版本中的错误造成的。

于 2014-03-08T07:25:21.227 回答
0

viewWillAppear我已经通过像这样在 detailView中加载内容来解决这个问题

-(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];
    }
}
于 2013-11-15T08:35:37.160 回答
0

根据 Apple 的建议,不应将 webview 嵌入到滚动视图中

重要的

你不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为这两个对象的触摸事件可能会混淆和错误处理。

参考: https ://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/

于 2015-07-23T14:22:08.017 回答