以下のようなWebビューを持つカスタムViewControllerを作成します。
@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;
//.....
}
以下のwebViewにズームイン、ズームアウト、ロードHTMLStringする3つの関数があります。
//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ボタンをタップしたときに-> webViewzoomInをzoomIn関数(zoomOutの場合と同じ)を呼び出して設定しました。
iPhone 5.0シミュレーター(xCode 4.2を使用)でテストすると、すべて問題ありません。ピンチしてズームイン、ズームアウト(zoomIn、zoomOutボタンも使用)できます。しかし、iPhone 4.3とiPad(4.3と5.0の両方)でテストすると、--->何も起こりません->ログは次のことを示しています:
** ZoomScaleの動作を設定します
SCROLLVIEWのzoomScale=1.00; --->また別の値を設定しましたが、zoomScaleは常に=1.00->変更なし**
私のコードの何が問題になっていますか?私はとても混乱しています。助けてください。少し早いですがお礼を。