我有一个webView,当内容最初加载时,它看起来很完美并且非常适合但是一旦完成加载就会自动缩放。有没有办法阻止它?我尝试了比我在这里发布的组合更多的组合。
非常感谢。
我使用的代码非常简单:
NSString *urlString = @"some_url";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
[cell.webView loadRequest:request];
答案 0 :(得分:0)
这是你做的事情:
在拥有网络视图的UI控制器中,将其设为UIWebViewDelegate
。然后在您设置要加载的URL的位置,将委托设置为控制器:
NSString *urlAddress = @"http://dl.dropbox.com/u/50941418/2-build.html";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
webView.delegate = self;
最后实现webViewDidFinishLoad
:以正确设置缩放级别:
此选项适用于iOS 5.0和>
- (void)webViewDidFinishLoad:(UIWebView *)theWebView{
CGSize contentSize = theWebView.scrollView.contentSize;
CGSize viewSize = theWebView.bounds.size;
float rw = viewSize.width / contentSize.width;
theWebView.scrollView.minimumZoomScale = rw;
theWebView.scrollView.maximumZoomScale = rw;
theWebView.scrollView.zoomScale = rw;
}
我希望这会有所帮助......
选项B,你可以尝试改变HTML(这个例子完成了工作,但从HTML解析的角度来看并不完美。我只是想说明我的观点。它确实适用于你的例子,可能大多数情况。可能会以编程方式检测到40的插图,我没有尝试研究它。
NSString *urlAddress = @"http://dl.dropbox.com/u/50941418/2-build.html";
NSURL *url = [NSURL URLWithString:urlAddress];
NSString *html = [NSString stringWithContentsOfURL:url encoding:[NSString defaultCStringEncoding] error:nil];
NSRange range = [html rangeOfString:@"<body"];
if(range.location != NSNotFound) {
// Adjust style for mobile
float inset = 40;
NSString *style = [NSString stringWithFormat:@"<style>div {max-width: %fpx;}</style>", self.view.bounds.size.width - inset];
html = [NSString stringWithFormat:@"%@%@%@", [html substringToIndex:range.location], style, [html substringFromIndex:range.location]];
}
[webView loadHTMLString:html baseURL:url];