答案 0 :(得分:8)
我只是猜测这里并没有尝试,但AFAIK UIWebView有一个UIScrollView子项。所以应该可以做到:
for (UIScrollView *scroll in [myWebView subviews]) {
// Make sure it really is a scroll view and reset the zoom scale.
if ([scroll respondsToSelector:@selector(setZoomScale:)])
[scroll setZoomScale:1.0];
}
答案 1 :(得分:3)
在iOS 5+上,您可以访问scrollView。 只是做:
[webView.scrollView setZoomScale:1.0];
答案 2 :(得分:1)
如果您想以编程方式执行此操作,这是我能找到完成它的唯一方法:(如果您愿意,请指定您自己的尺寸,我在输入表单字段后尝试缩小)
UIScrollView *sv = [[webViewView subviews] objectAtIndex:0];
[sv zoomToRect:CGRectMake(0, 0, sv.contentSize.width, sv.contentSize.height) animated:YES];
答案 3 :(得分:1)
更新: 使用
时缩小尺寸无法正常工作[[[webView subviews] lastObject] setZoomScale:0.25];
在页面上缩小尺寸的图像质量非常糟糕。这样做的:
[[[webView subviews] lastObject] setZoomScale:0.25 animated:YES];
修正了它。所以最后一行是你可以使用的。
webView是UIWebView的子类,它位于某个IB文件中。我根本没有使用Viewport。我发现应该选择从Cocoa Touch端执行此操作或使用JS。
我用过:
webView.scalesPageToFit = YES;
我想知道是否有办法重置scalesPageToFit。
答案 4 :(得分:0)
根据Captnwalker1的答案改编,我提出了这个问题:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if(toInterfaceOrientation ==UIInterfaceOrientationPortrait||toInterfaceOrientation==UIInterfaceOrientationMaskPortraitUpsideDown)
{
currentScrollView = [[webView subviews] objectAtIndex:0];
[currentScrollView zoomToRect:CGRectMake(0, 0, currentScrollView.contentSize.width, currentScrollView.contentSize.height) animated:NO];
}
else
{
currentScrollView = [[webView subviews] objectAtIndex:0];
[currentScrollView zoomToRect:CGRectMake(0, 0, currentScrollView.contentSize.width, currentScrollView.contentSize.height) animated:NO];
}
}
因此,请加载您的网页视图图片,图片会在旋转时重置其大小。