2012-01-10 33 views
0

我試圖在應用程序方法(不是控制器)中顯示圖像didFinishLaunchingWithOptions(它實際上是一個閃屏)。 我的代碼在didFinishLaunchingWithOptions中的圖像方向

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 640)]; 

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"]; 
} else { 
    //doesn't matter for now 
} 

實際顯示的圖像,但它從上左上角開始沒有。即使仿真器處於橫向模式,它也會以縱向模式顯示。

即使我用640反轉1024也要解決問題。

想要始終在橫向模式下顯示飛濺。

回答

0

請嘗試以下操作。寬度&高度附近可能有錯誤的方式,使剛切換身邊

#define HEIGHT 1024 
#define WIDTH 640 

(...) 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

    UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation]; 
    if (orientation == UIDeviceOrientationPortrait) { 
     splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, HEIGHT, WIDTH)]; 
    } else if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight) { 
     splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)]; 
    } 

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"]; 
} else { 
    //doesn't matter for now 
} 
+0

沒有changes..I認爲這個問題是關係到一個事實,即控制器裝貨前方向總是肖像。 – 2012-01-10 15:23:45

+0

所以它總是打「UIDeviceOrientationPortrait」?如果是這樣,嘗試加載應用程序,而設備在所需的方向 – CStreel 2012-01-10 15:29:56

+0

是的。但問題是,在肖像模式下,原點0,0從另一個角落開始。所以要麼會拉伸圖像,要麼會以縱向顯示。所以需要我在控制器的didload事件中加載splashscreen? – 2012-01-10 15:32:22

0

你需要設置你的圖像視圖 -

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 640)]; 
    splashView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"]; 
} else { 
    //doesn't matter for now 
} 
0

的autoresizingMask屬性或者,你可以簡單地提交圖片在部署信息

我不知道關於低於4.2

Xcode的,但如果你使用4.2,你可以做到這一點

  • 去項目導航>項目
  • 選擇目標>項目>低於iPad的部署信息彙總
  • 尋找「啓動圖像」選項卡,然後右鍵點擊「人像」或「風景「選擇圖像提交

希望這有助於;)