2012-09-07 99 views
2

我正在研究ipad應用程序開發(關於圖像)的UI問題。我已經閱讀了蘋果發展網站上的一些文件,但我找不到任何有關它的信息。ipad風景/人像圖片

是否存在圖像文件的任何文件約定來區分系統應爲橫向/縱向加載哪個圖像。因爲我看到啓動圖像,我們可以使用「MyLaunchImage-Portrait.png」&「MyLaunchImage-Lanscape.png」。我曾嘗試將「-Landscape」,「-Portrait」,「-Landscape〜ipad」,「-Portrait〜ipad」添加到其他通用的圖像中,但失敗。

以前有沒有人遇到過這個問題?

回答

1

不幸的是,除了iPad的啓動圖像以外,沒有其他的標準約定。但是,您可以使用NSNotificationCenter來偵聽方向更改事件並相應地響應它們。這裏有一個例子:

- (void)awakeFromNib 
{ 
    //isShowingLandscapeView should be a BOOL declared in your header (.h) 
    isShowingLandscapeView = NO; 
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(orientationChanged:) 
               name:UIDeviceOrientationDidChangeNotification 
               object:nil]; 
} 

- (void)orientationChanged:(NSNotification *)notification 
{ 
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; 
    if (UIDeviceOrientationIsLandscape(deviceOrientation) && 
     !isShowingLandscapeView) 
    { 
     [myImageView setImage:[UIImage imageNamed:@"myLandscapeImage"]]; 
     isShowingLandscapeView = YES; 
    } 
    else if (UIDeviceOrientationIsPortrait(deviceOrientation) && 
      isShowingLandscapeView) 
    { 
     [myImageView setImage:[UIImage imageNamed:@"myPortraitImage"]]; 
     isShowingLandscapeView = NO; 
    } 
} 
+0

這是我使用的方式,不必使用通知中心來檢測方向變化: - (無效)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation時間:(NSTimeInterval)持續時間{ } - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { } – user1653545