我想以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)];
..比例非常糟糕,似乎没有抗锯齿。
有谁知道为什么会这样,或者有关于如何修复它的建议?
谢谢! 尼克。
答案 0 :(得分:3)
我想出了一个解决方案!
拍摄网页视图的快照,将其添加到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];
}
为上面的建议干杯! 尼克。
答案 1 :(得分:0)
为什么不让网页视图更小?它应该以较小的尺寸呈现高质量的内容。
如果您需要为尺寸更改设置动画,可以在网页视图的图层上设置minificationFilter
以获得合理的质量:
[[webView layer] setMinificationFilter:kCAFilterLinear];
答案 2 :(得分:0)
在你的UIViewController覆盖
中制作你的UIWebView的frame.origin.x& frame.origin.y整数值。 看看这是否是您正在寻找的结果。