2012-08-10 200 views
1

我写一个自定义视图控制器具有的WebView象下面这样:UIWebView pich缩放工作在iPhone 5.0模拟器上,但不能在iPhone 4.3和iPad 4.3,5.0模拟器中工作?

@interface WebpageController : UIViewController<UIWebViewDelegate> { 
    UIWebView* webView; 
//.... 
} 

,它的构造函数:

-(id)init { 

    if (self = [super init]) { 
    webView=[[UIWebView alloc]init]; 
    webView.delegate=self; 
     webView.scalesPageToFit = YES; 
     webView.multipleTouchEnabled = YES; 
//..... 
} 

和我有3个功能zoomin,缩小和loadHTMLString到webView的下面:

//this is load HTML String function 
// param: content --> HTML conten by inside <body> </body> 
-(void) loadWebViewWithContent:(NSString*) content{ 

    NSString * header = @"<meta name='viewport' content='width=device-width;initial-scale=1.0; user-scalable= yes;'/>"; 

    NSString * html = [NSString stringWithFormat:@"<html> 
                 <head>%@ </head> 
                 <body> %@ </body> 
                </html>",header,content]; 
    [webView loadHTMLString:html baseURL:nil]; 

} 

//这些是放大和缩小功能

-(void) zoomIn { 
    for (UIScrollView *scroll in [self.webView subviews]) { 
     //Set the zoom level. 
     if ([scroll respondsToSelector:@selector(setZoomScale:animated:)]) { 
      NSLog(@"set ZoomScale work"); 

      [scroll setZoomScale:2.0f animated:YES]; 
      NSLog(@"zoomScale of SCROLLVIEW= %f",(scroll.zoomScale)); 

     } 
    } 

} 
-(void) zoomOut { 

    for (UIScrollView *scroll in [self.webView subviews]) { 
     //Set the zoom level. 

     if ([scroll respondsToSelector:@selector(setZoomScale:animated:)]) { 

      NSLog(@"set ZoomScale work"); 
      [scroll setZoomScale:0.5f animated:YES]; 
      NSLog(@"zoomScale of SCROLLVIEW= %f",(scroll.zoomScale)); 

     } 

    } 

} 

在主UI,我设置,当上ZoomIn按钮用户抽头 - > webView的zoomIn由呼叫zoomIn函数(同样为缩小(ZoomOut))

一切正常,当我在iPhone 5.0模拟器测试(I xcode中使用4.2)。你可以捏缩放,zoomOut(也可以使用zoomIn,zoomOut按钮)。 但是,当在iPhone 4.3和iPad测试(包括4.3和5.0)--->无事发生 - >的LOG表明:

* *设置ZoomScale工作

滚动型zoomScale = 1.00; --->我还设置其他值,但始终zoomScale = 1.00 - >无变化 **

什么是错我的代码?我很困惑,请帮助我。 提前致谢。

回答

0

更好的是你总是使用自己的“iVar名字”。

​​

和后来的引用像self.webView。

1

这是了滚动缩放方法..

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    return contentView; 
} 

-(void)scrollViewDidZoom:(UIScrollView *)scrllView 
{ 
    CGRect rectZoom = [self centeredFrameForScrollView:scrllView andUIView:contentView]; 
    contentView.frame = rectZoom; //[self centeredFrameForScrollView:scrllView andUIView:contentView]; 
} 

-(CGRect)centeredFrameForScrollView:(UIScrollView *)scroll andUIView:(UIView *)rView 
{ 
    CGSize boundsSize = scroll.bounds.size; 
    CGRect frameToCenter = rView.frame; 

    // center horizontally 
    if (frameToCenter.size.width < boundsSize.width) 
    { 
     frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width)/2; 
    } 
    else 
    { 
     frameToCenter.origin.x = 0; 
    } 

    // center vertically 
    if (frameToCenter.size.height < boundsSize.height) 
    { 
     frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height)/2; 
    } 
    else 
    { 
     frameToCenter.origin.y = 0; 
    } 
    frameToCenter = CGRectMake(frameToCenter.origin.x, frameToCenter.origin.y, frameToCenter.size.width, frameToCenter.size.height); 
    return frameToCenter; 
} 

如果没有工作让知道...

相关问题