2011-06-02 69 views
10

我試圖找到一種方法來檢測如何放大某人在Web應用程序中,以便當他們單擊以拉起菜單時,菜單將保持相同的大小,而不管放大倍數如何。要做到這一點,我需要能夠適當地縮放相對於縮放的菜單大小。有沒有辦法做到這一點?iPad Zoom Scale Detection

+0

尋找回答這個問題後,大量挖掘。設置賞金。 – 2011-06-22 05:13:27

回答

6

首先,全部UIWebView具有作爲UIScrollView子視圖。因此,爲了得到它,你可以做到以下幾點:

for (UIView * v in [_webView subviews]) { 

    if ([v isKindOfClass:[UIScrollView class]]) { 
     UIScrollView * s = (UIScrollView*)v; 
     // use the scrollview 
    } 

} 

之後,你可以使用UIScrollView找出縮放比例。不幸的是,物業zoomScale並沒有告訴我們,在這種情況下,我們想要的,但是我們可以使用contentSize和滾動型的frame,如下:

CGFloat zoomScale = s.contentSize.width/s.frame.size.width; 

在那之後,我想您告訴你的JavaScript代碼關於這個zoomScale。你可以使用下面的代碼:

[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"yourJSZoomScaleVar = %f;", zoomScale]]; 

希望它有幫助!

+0

對不起,我知道我在一個實際的網頁上下文中尋找它。進一步的研究表明,這將是window.innerWidth/screen.width的一些推導。明天將有機會進一步觀察。 – 2011-06-24 08:12:29

+0

這真的有幫助!謝謝! – Mason 2011-06-24 13:43:42