Плавный переход от стартового изображения к основному виду - PullRequest
8 голосов
/ 10 июня 2011

Можно ли реализовать плавный переход при загрузке приложения из образа запуска в первый вид?

Поведение по умолчанию включено / выключено с немедленным изменением: появляется изображение запуска, затемон мгновенно исчезает, чтобы позволить контроллеру основного вида иметь место.Я хотел бы реализовать некоторое затухание или увеличение или уменьшение масштаба.

Возможно ли это?

Спасибо!

Ответы [ 4 ]

15 голосов
/ 10 июня 2011

Нет поддержки фреймворка, но вы можете получить этот результат, если сделаете это самостоятельно, вручную. В зависимости от того, каков ваш образ запуска и как выглядит ваш пользовательский интерфейс, вы можете сделать это по-разному, но в основном: загрузите контроллер первого представления и отобразите изображение default.png в виде изображения при его загрузке. Затем анимируйте исчезновение из этого изображения, чтобы показать ваш фактический пользовательский интерфейс.

7 голосов
/ 29 марта 2012

Изменен ответ Данкрика, чтобы сделать все это в приложении AppDelegate: didFinishLaunchingWithOptions. Мне это нравится, потому что код гарантированно запускается только при запуске приложения и не загрязняет ни один из контроллеров представления.

Все очень просто:

- (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];
                     }
    ];
}
2 голосов
/ 10 июня 2011

Вам повезло. Я только что сделал это несколько минут назад. Вам нужен заставка. Изображение на вашем экране, точно такое же, как ваше изображение по умолчанию, которое загружает устройство. Затем в вашем приложении он исчезает с помощью анимации затухания, вызываемой из функции viewDidAppear

- (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 голосов
/ 10 июня 2011

Мы часто используем что-то под названием "splashView", чтобы сделать это. Он был написан Shannon Applecline и доступен по лицензии CC. Вам нужно будет поискать его в Google.

//
//  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
//
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...