2

私のアプリは、第 4 世代の iPad で webview を読み込んでいます。

768 x 1024 の縦長と 1024 x 768 の横長のビュー サイズがあります。

ただし、読み込んでいるコンテンツは 760 x 1014 です。

アプリは回転とズームをサポートしています。

ビューが読み込まれている場合は、スクロールバー付きの横向きだけでなく、縦向きのフルスクリーンにも収まるようにしたい。

だから私はこのようにヘッダーにメタタグを追加しました

<meta name="viewport" id="view" content="width=760, user-scalable=yes">

私のSDKにも

- (void)viewDidLoad{
mainWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
mainWebView.delegate = self;

[mainWebView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
mainWebView.scalesPageToFit = YES;
mainWebView.contentMode = UIViewContentModeScaleAspectFit;

for(id subview in mainWebView.subviews) {
    if([[subview class] isSubclassOfClass:[UIScrollView class]]) {
        ((UIScrollView *)subview).bounces = NO;
        ((UIScrollView *)subview).alwaysBounceVertical = NO;
        ((UIScrollView *)subview).alwaysBounceHorizontal = NO;
        ((UIScrollView *)subview).bouncesZoom = NO;
        ((UIScrollView *)subview).maximumZoomScale = 2.0;
        ((UIScrollView *)subview).minimumZoomScale = 1.0;
    }
}
[self.view addSubview:self.mainWebView];
NSURL *url = [NSURL URLWithString:@"http://my app"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainWebView loadRequest:request];
}

これらとともに

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
if (interfaceOrientation == UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight) {
    NSLog(@"Rotated Landscape");
    [mainWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"view\").setAttribute('content', 'width=1014');"]];
}
return YES;}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
NSLog(@"didRotateFromInterfaceOrientation");
if(fromInterfaceOrientation == UIDeviceOrientationLandscapeLeft || fromInterfaceOrientation == UIDeviceOrientationLandscapeRight) {
    [mainWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"view\").setAttribute('content', 'width=1014');"]];
    [mainWebView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
    mainWebView.scalesPageToFit = YES;
} else if (fromInterfaceOrientation == UIDeviceOrientationPortrait || fromInterfaceOrientation == UIDeviceOrientationPortraitUpsideDown) {
    [mainWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"view\").setAttribute('content', 'width=760');"]];
    [mainWebView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
    mainWebView.scalesPageToFit = YES;
}}

PS shouldAutorotateToInterfaceOrientation は呼び出されていません。

私のコードの何が問題なのか教えてください。どんな提案も役に立ちます

4

0 に答える 0