2011-06-10 11 views
8

Uygulama yüklendiğinde, başlatma görüntüsünden ilk görünüme kadar yumuşak bir geçiş uygulamak mümkün mü?Başlatma görüntüsünden ana görünüme düzgün geçiş

Varsayılan davranış, hemen değişerek açık/kapalı: başlangıç ​​görüntüsü belirir ve ana görünüm denetleyicisinin gerçekleşmesi için anında kaybolur. Bazı solma veya yakınlaştırma veya uzaklaştırma yapmak istiyorum.

Bu mümkün mü?

Teşekkür ederiz!

cevap

15

Çerçeve desteği yok, ancak bunu kendiniz yapıyorsanız, el ile elde edebilirsiniz. Başlatma resminizin ne olduğuna ve kullanıcı arayüzünüzün neye benzediğine bağlı olarak, bunu farklı yollarla yapabilirsiniz, ancak temel olarak: ilk görüntü denetleyicinizi yükler ve yüklendiğinde bir resim görünümünde default.png resminizi görüntülemenizi sağlar. Ardından, gerçek kullanıcı arayüzünüzü ortaya çıkarmak için söz konusu resmin solmasını sağlayın.

+0

temiz ve basit bir çözüm gibi görünüyor! – marzapower

2

Şanslısınız. Bunu birkaç dakika önce yaptım. Bir sıçrama ekranına ihtiyacın var. Görünümünüzde, aygıtın yüklediği varsayılan resminizle tam olarak aynı olan bir resim. Sonra app o viewDidAppear fonksiyonu

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [self performSelector:@selector(killSplashScreen) withObject:nil afterDelay:1.0]; 

} 

- (void)killSplashScreen { 
    [UIView animateWithDuration:0.5 animations:^{splashScreen.alpha = 0.0;} completion:NULL]; 
} 
0

Biz genellikle bunu yapmak için "splashView" denilen şey kullanmak çağrılan bir solma animasyon ile görevden var. Shannon Applecline tarafından yazılmıştır ve CC lisansı altındadır. Bulmak için bazı Google Çalışması yapmak zorunda kalacaksınız. didFinishLaunchingWithOptions:

// 
// splashView.h 
// version 1.1 
// 
// Created by Shannon Appelcline on 5/22/09. 
// Copyright 2009 Skotos Tech Inc. 
// 
// Licensed Under Creative Commons Attribution 3.0: 
// http://creativecommons.org/licenses/by/3.0/ 
// You may freely use this class, provided that you maintain these attribute comments 
// 
// Visit our iPhone blog: http://iphoneinaction.manning.com 
// 
7

AppDelegate uygulama içinde her şeyi yapmasına Dancreek cevabı Modifiye. Bunu beğendim çünkü kodun sadece uygulama başlangıcında çalışması garanti ediliyor ve görüntü denetleyicilerinden hiçbirini kirletmiyor.

Çok basit:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // set up your root view and stuff.... 

    //.....(do whatever else you need to do)... 

    // show the main window, overlay with splash screen + alpha dissolve... 

     UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
    [self.window addSubview:splashScreen];   
    [self.window makeKeyAndVisible]; 

    [UIView animateWithDuration:0.3 animations:^{splashScreen.alpha = 0.0;} 
        completion:(void (^)(BOOL)) ^{ 
          [splashScreen removeFromSuperview]; 
        } 
    ]; 
} 
+1

addSubview satırınızı şu şekilde değiştirmem gerekiyor: [self.window addSubview: splashScreen]; ama harika çalıştı – codefinger

+0

@joekutner Evet, arka pencerede sıçrama doğrudan eklemek için daha genel bir çözüm. Bu her zaman işe yarayacak. Benim için çalışmış olduğum şey, ama ilk görüşüme bağlı. Çözümünüzü cevaba koydum, daha iyi;) – n13

+0

Daha da iyisi, sadece açılış görüntü görünümünüz için ayrı bir UIWindow oluşturun ve pencere seviyesini ana pencerenin üstüne getirin. Bu, ilklendirme kodunuzun diğer bölümleri daha sonra ana pencereye ek alt görünümler eklese bile, resmin üstte kalmasını sağlar. –