Добавление логотипа для приложения iPhone - PullRequest
0 голосов
/ 14 декабря 2009

Я хочу добавить вид логотипа в виде ланча для приложения iPhone. Я кодирую следующим образом

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    UIImage image = [[UIImage alloc] imageWithContentsOfFile:@"1.jpg"];
        UIImageView view = [[UIImageView alloc] initWithImage:image];
        [window addSubViews:view];

        [NSThread sleepForIntervalTime:10];
        [view removeFromSubview];
    [window addSubview: navigationController.view];
    [window makeKeyAndVisible];
}

Но симулятор не может отображаться так, как я хочу. Просто отобразите представление navigationController. Я думаю, что причина в том, что iPhone отображает первый вид после "applicationDidFinishLaunching" Есть ли другие решения по этому поводу?

Ответы [ 2 ]

3 голосов
/ 14 декабря 2009

Просто добавьте изображение, которое вы хотите стать ЛОГОТИПОМ в свой проект с именем: Default.png

Он автоматически станет экраном запуска вашего приложения.

Ваш подход не сработает. applicationDidFinishLaunching делегат запускается после вся загрузка была выполнена. Кроме того, задержка на 10 секунд не будет точной, поскольку приложение может загружаться на некоторых устройствах быстрее, чем на других.

1 голос
/ 14 декабря 2009

Пабло прав - вы можете просто использовать Default.png для этого.

Однако ваш код никогда не будет работать по двум причинам.

1)

Основным потоком приложения является поток пользовательского интерфейса, который отвечает за обновление интерфейса, и этот поток запускает ваш applicationDidFinishLaunching:.

Если вы просто позвоните [NSThread sleepForIntervalTime:10], поток будет спать. Однако это также означает, что, пока поток спит, пользовательский интерфейс не будет обновляться. Затем, когда вы позвоните [view removeFromSuperview], он удалит изображение и продолжит. Вы никогда не увидите изображение!

Чтобы ваш код работал, вы должны сделать что-то вроде этого:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    [window addSubview: navigationController.view];

    UIImage *image = [UIImage imageWithContentsOfFile:@"1.jpg"];
    UIImageView *view = [[UIImageView alloc] initWithImage:image];
    [window addSubView:view];
    [view release];

    [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(removeImage:) userInfo:view repeats:NO];
    [window makeKeyAndVisible];
}


- (void) removeImage:(NSTimer *)timer {
    UIImageView *view = (UIImageView *)timer.userInfo;
    [view removeFromSuperview];
}

Этот код покажет изображение в течение 10 секунд, а затем удалит его. Однако, если вы просто хотите, чтобы изображение при запуске, использовать Default.png, безусловно, способ сделать это!

2)

Вы добавили представление навигатора перед вашим изображением - в приведенном выше коде я переместил добавление вида навигатора до UIImage. Это означает, что изображение будет находиться перед навигатором в течение 10-секундной задержки, пока оно не будет удалено, открывая вид навигатора.

Надеюсь, это поможет,

Sam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...