2016-05-27 9 views
0

Ich greife auf LaunchImage von [UIImage imageNamed: @ "LaunchImage"], aber es gibt mir immer 640x960 egal was. Es scheint offensichtlich nicht zu erkennen, welches Telefon ich benutze und es wirft 640x960.Holen Sie sich das richtige LaunchImage nicht iPhone4

Ich könnte für die Bildschirmgröße überprüfen und bestimmte Bildnamen für jedes Gerät festlegen, aber das ist nicht wirklich ideal. Es muss einen einfachen Weg geben, um das zu erledigen. Weiß jemand?

+0

versuchen http: //stackoverflow.com/questions/32062621/launchimage-does-not-work-for-iphone4s-in-newest-xcode?rq=1 – sschale

+0

Ich denke, du hast nicht einmal verstanden, was mein Problem ist .. Ich frage Wie kann man auf Startbilder für jedes Gerät programmgesteuert zugreifen, ohne nach Bildschirmgrößen suchen zu müssen. – durazno

+0

Found ein Blog über dieses "Problem" und stellt sich heraus, dass es unmöglich ist. Löschen Sie diese Frage bald. – durazno

Antwort

0

Der Schlüssel dazu ist, dass die Datei Info.plist Informationen darüber enthält, welches Splash-Image verwendet werden soll. Diese Methode unten finden Sie diesen Namen von der Info.plist, und dann müssen Sie nur abfragen von [UIImage imageNamed:@""] Methode.

- (NSString *)splashImageNameForOrientation:(UIInterfaceOrientation)orientation { 
    CGSize viewSize = self.view.bounds.size; 
    NSString* viewOrientation = @"Portrait"; 
    if (UIDeviceOrientationIsLandscape(orientation)) { 
     viewSize = CGSizeMake(viewSize.height, viewSize.width); 
     viewOrientation = @"Landscape"; 
    } 

    NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"]; 
    for (NSDictionary* dict in imagesDict) { 
     CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]); 
     if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) 
      return dict[@"UILaunchImageName"]; 
    } 

    if (imagesDict.count > 0) { 
     return [imagesDict firstObject][@"UILaunchImageName"]; 
    } 
    return nil; 
} 
+0

Warum geben Sie mir diese Antwort, als ich bereits spezifisch erwähnte, dass ich weiß, wie. Ich wollte nur wissen, ob es möglich ist, es zu tun, OHNE zu überprüfen, welches Gerät benutzt wird. – durazno

+0

Warum können wir nicht noch einmal nach der Größe suchen? –

+0

Haben Sie meine Frage noch nicht gelesen ..? Ich habe nie gesagt, dass wir das nicht können und ich weiß wie. Ich sagte sehr deutlich, dass ich nach einer Möglichkeit suchte, diesen Teil möglichst zu überspringen. Die Antwort ist, wir können nicht. – durazno

Verwandte Themen