我想以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)];
..规模是非常差的质量,似乎没有抗锯齿。
有谁知道为什么会这样,或者有关于如何修复它的建议?
谢谢!缺口。
我想出了一个解决方案!
拍摄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后立即执行此操作,则需要将操作推迟一段时间(我选择了十分之一秒!)
像这样:
-(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];
}
为上面的建议干杯!缺口。
为什么不让网页视图更小?它应该以较小的尺寸呈现高质量的内容。
如果需要设置大小变化的动画,可以在Web视图的图层上设置minificationFilter
以获得合理的质量:
[[webView layer] setMinificationFilter:kCAFilterLinear];
在你的UIViewController覆盖中
并制作UIWebView的frame.origin.x和frame.origin.y整数值。看看这是否是您正在寻找的结果。