我正在UIWebView中加载HTML文本。页面正在加载完美,默认缩放等于1.0。 UIWebView的scalesPageToFit属性设置为YES,因此可以使用捏合手势放大/缩小页面。 我想要做的是将初始webView的内容缩放设置为2.0。
我试过这段代码:
webView.scrollView.zoomScale = 2.0;
但内容显得模糊,只要我用手势开始缩放,网页视图就会重新渲染内容而不会出现模糊。
FYI,二传手的动画版本:
[webView.scrollView setZoomScale:2.0 animated:YES];
正确显示内容文字,正确缩放且不模糊,但我不想为缩放的更改设置动画。
答案 0 :(得分:0)
如果您不想看动画,可以为动画时间指定零。下面的代码可以帮助您。
[UIView animateWithDuration:0.0 animations:^{
webView.scrollView.zoomScale = 2.0;;
}completion:^(BOOL finished) {
//...
}];
另一个建议是使用 CGAffineTransformMakeScale 方法来扩展webview。
webView.transform = CGAffineTransformMakeScale(2, 2);
答案 1 :(得分:0)
我不知道添加动画可以消除模糊效果,所以感谢您的帖子,这很有帮助。
我搜索的是您的相同解决方案,但不幸的是, ondermerol 的答案对我不起作用。
我使用UIScrollView的委托来解决这个问题 - >的 UIScrollViewDelegate 强>
1)在班级中添加BOOL属性
@property (nonatomic) BOOL webViewWasForceZooming;
2)在 viewDidLoad 中,连接您的委托并设置BOOL值
self.webView.scrollView.delegate = self;
self.webViewWasForceScrolling = NO;
3)设置新比例
self.webView.hidden = YES;
webViewWasForceZooming = YES;
[self.webView.scrollView setZoomScale:2.0 animated:YES];
4)缩放后显示webview
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
if (webViewWasForceZooming) {
webViewWasForceZooming = NO;
self.webView.hidden = NO;
}
}
我的解决方案并不完美,因为动画持续时间不为空,但是在加载webview后更改缩放,这很不错。
希望它会对某人有所帮助。