我有一个包含歌曲的HTML字符串的sqlite数据库。
的ViewController
在这个视图控制器中,我有一个文本和一个按钮,用户在其中输入歌曲编号和一个按钮来发送搜索数据库的请求。
SongDisplay
在这个视图控制器中,我有一个Web视图和一个标签都嵌入在滚动视图中。我的网络视图已禁用滚动。
歌词显示,滚动视图正确调整大小。但是,Web视图不会调整大小,只显示一些歌词。我知道这是因为我将滚动视图和Web视图视为不同的颜色。
这是我的代码:
- (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);
}
如何同时获取网页视图和滚动视图以调整大小?
答案 0 :(得分:0)
我通过在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];
}
}
答案 1 :(得分:0)
当OS X Mavericks正式发布时,问题就出现了问题。之前的问题可能是测试版中的错误造成的。
答案 2 :(得分:0)
根据Apple的建议,不应该在滚动视图中嵌入webview
重要
您不应在UIScrollView中嵌入UIWebView或UITableView对象 对象。如果这样做,可能会因触摸而导致意外行为 这两个对象的事件可以混淆和错误处理。
价: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/