2012-03-06 5 views
0

私はアプリを作成していますが、すべてがスムーズになりますが、デバイスを横向きに回転すると、画像は中央に配置されず、見た目には見えません。明らかにこれを修正する方法があります。どんなヒントも高く評価されます。前もって感謝します。ポートレートモードからランドスケープモードに切り替えると、画面上の画像がうまく配置されませんか?

答えて

1

ビューを定義するためにNIBファイルを使用している場合、すべてのオブジェクトは長さと幅のディメンションを持つ特定の(X、Y)座標にハードコードされています。

向きを変更すると、同じ座標と寸法が適用されます。

これを変更するには、あなたの意見に最も適した任意のものにプログラムで座標を変更する必要があります。

私のアプリケーションのいずれかから、いくつかのコード例:ここでは

#pragma mark - 
#pragma mark Orientation Support 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation) && self.portraitMode) { 
     adView.currentContentSizeIdentifier = (&ADBannerContentSizeIdentifierPortrait != nil) ? 
      ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifier480x32; 

     if (self.bannerIsVisible) 
      adView.frame = CGRectMake(0, 268, 480, 12); 
     else 
      adView.frame = CGRectMake(0, 318, 480, 32); 

     backgroundImage.frame = CGRectMake(-30, -170, 700, 500); 
     bottleImage.frame = CGRectMake(200, 30, 240, 240); 
     searchBox.frame = CGRectMake(57, 48, 120, 31); 
     pingButton.frame = CGRectMake(50, 100, 133, 66); 
     infoButton.frame = CGRectMake(444, 232, 18, 19); 

     self.portraitMode = NO; 
    } else if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation) && !(self.portraitMode)) { 
     adView.currentContentSizeIdentifier = (&ADBannerContentSizeIdentifierPortrait != nil) ? 
      ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifier320x50; 

     if (self.bannerIsVisible) 
      adView.frame = CGRectMake(0, 410, 320, 50); 
     else 
      adView.frame = CGRectMake(0, 460, 320, 50); 

     backgroundImage.frame = CGRectMake(-190, -40, 700, 500); 
     bottleImage.frame = CGRectMake(40, 165, 240, 240); 
     searchBox.frame = CGRectMake(99, 56, 120, 31); 
     pingButton.frame = CGRectMake(92, 99, 133, 66); 
     infoButton.frame = CGRectMake(282, 374, 18, 19); 

     self.portraitMode = YES; 
    } 
} 

は、座標系上のいくつかのリンゴのドキュメントです:

https://developer.apple.com/library/ios/#DOCUMENTATION/General/Conceptual/Devpedia-CocoaApp/CoordinateSystem.html

が、これは、歓声を役に立てば幸い!

+0

ありがとうございました!それを撃つだろう。 – Gmenfan83

関連する問題