以編程方式縮放UIWebView我有一個UIWebView,我需要以編程方式縮放。通過在我的基於xib的視圖中解決其UIScrollView
由於UIWebView
沒有自己的縮放方法,我發現Max的post建議獲取UIWebViews UIScrollView
並將縮放級別發送到該縮放級別。
以我視圖控制器的viewDidLoad
方法我因此確定的UIScrollView
如下:
- (void)viewDidLoad {
// set iVars (both are IBOutlets)
iWebView.delegate = self;
iScrollView = [[iWebView subviews] objectAtIndex:0];
iScrollview.minimumZoomScale = 0.2;
iScrollview.maximumZoomScale = 4.0;
iScrollview.zoomScale = iScrollview.minimumZoomScale;
NSLog(@"webViewDidFinishLoad: Current %.3f, Min %.3f, Max %.3f",
iMapScrollView.zoomScale, iMapScrollView.minimumZoomScale, iMapScrollView.maximumZoomScale);
...
}
的UIWebView的(默認)含有1000x2000px PNG文件。該的NSLog顯示
webViewDidFinishLoad: Current 0.200, Min 0.200, Max 4.000
麻煩來當我嘗試更新iScrollView.zoomLevel
新的縮放因子(可以說2.4):
- (void)setPositionWithZoom:(float)xPos down:(float)yPos zoomScale:(float)mZoomScale {
iScrollView.zoomScale = mZoomScale;
NSLog(@"setPositionWithZoom: mZoomScale %.3f Current %.3f, Min %.3f, Max %.3f",
mZoomScale , iMapScrollView.zoomScale, iMapScrollView.minimumZoomScale, iMapScrollView.maximumZoomScale);
...
}
的的NSLog顯示:
setPositionWithZoom: mZoomScale 2.400 mCurrent 1.000 Min 1.000 Max 1.000
所以縮放級別重置爲1,因爲最小/最大縮放級別神祕地回落到該值。
我驚慌失措,任何線索?
編輯:進一步調查把我帶到了一個觸摸的方法,我從一個UIWindow子類調用轉發觸摸事件(執行Mithins recipe爲抓觸摸事件與UIWebViews中)。
這是當我的viewController中的這個方法(myWebViewTouchesEnded
)被調用,價值被消滅。我不知道爲什麼。
PATCH:我申請一個簡單的補丁來定義高德2,我用它來設置最小/最大zoomScales回到我的自定義值內myWebViewTouchesEnded
和evrything工程...