4

我想以 60% 的比例将 Web 视图添加到我的应用程序中(就像在 Safari 中浏览其他窗口视图中看到的那样):

替代文字

注意内容看起来不错和别名!

如果我尝试将相同的 Web 视图添加到我的应用程序:

NSURL *url = [NSURL URLWithString:@"http://www.google.co.uk?q=hello"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
webView.delegate=self;
[webView loadRequest:request];  
[self.view addSubview:webView];

使用以下转换:

[webView setTransform:CGAffineTransformMakeScale(0.6, 0.6)];

替代文字

..规模真的很差质量,似乎没有抗锯齿。

有谁知道为什么会发生这种情况或对如何解决它有建议?

谢谢!缺口。

4

3 回答 3

3

我想出了一个解决办法!

拍摄 webview 的快照,将其添加到 UIImageView 并调整其大小!

UIGraphicsBeginImageContext(webView.bounds.size);
[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(webView.bounds.x, webView.bounds.y, webView.frame.size.width, webView.size.height)];
imageView.image = viewImage;
[self addSubview:imageView];
[imageView release];

webView.hidden = YES;

似乎工作正常!

需要注意的一点.. 如果您想在 WebView 加载后立即执行此操作,则需要将操作推迟一段时间(我选择了 10 秒!)

像这样:

-(void)deferLoading
{
    webViewHasActuallyLoaded = YES;
    [self setNeedsLayout];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [NSTimer scheduledTimerWithTimeInterval: 1.0/10.0 target:self selector:@selector(deferLoading) userInfo:nil repeats:NO];
}

为上面的建议干杯!缺口。

于 2009-02-26T10:58:53.887 回答
0

为什么不把 web 视图变小呢?它应该以较小的尺寸呈现高质量的内容。

如果您需要动画大小的变化,您可以设置minificationFilterweb 视图的图层以获得合理的质量:

[[webView layer] setMinificationFilter:kCAFilterLinear];
于 2009-02-23T20:54:40.997 回答
0

在你的 UIViewController 覆盖

  • (void)placeViewItems: (UIInterfaceOrientation)interfaceOrientation

并使您的 UIWebView 的 frame.origin.x 和 frame.origin.y 整数值。看看这是否是您正在寻找的结果。

于 2011-06-21T21:56:09.960 回答