Экран-заставка Iphone - PullRequest
       12

Экран-заставка Iphone

3 голосов
/ 12 февраля 2010

Я действительно стараюсь изо всех сил, но я не могу понять, что не так в моем коде. Я провел много поисков, но думаю, что просто не могу понять некоторые цели c;)

Мой первый вопрос связан с кодом ниже:

[window addSubview:tabBarController.view];

UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];

Имеет ли это значение, делая это:

[window addSubview:defaultImage];

или это:

[tabBarController.view addSubview:defaultImage];

Мой второй вопрос о создании заставки. Я пытался сделать это сам, но я просто не могу выяснить, что не работает (мы находимся в appDelegate):

[window addSubview:tabBarController.view];

UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image]; 

[window addSubview:defaultImage];
[window makeKeyAndVisible]; //makes the window visible right ?

UIImage *image2 = [UIImage imageNamed:@"lol2.png"];
UIImageView *pubImage = [[UIImageView alloc] initWithImage:image2];

[UIView setAnimationDelegate:self];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES]; //not sure about the forView:window ...

[defaultImage removeFromSuperview];
[window addSubview:pubImage];

[UIView commitAnimations];

Хм, я думаю, так как я назвал "makekeyandvisible", окно должно быть видимым и анимация должна быть показана пользователям ...

Ну, я пропускаю шаг, так как он не работает: D.

Помогите добро пожаловать,

Готье.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2010

Если вы добавите изображение в ваш проект с именем «Default.png», оно будет работать как заставка.

Заставлять пользователя смотреть на экран дольше, чем необходимо, обычно считается плохим.

Если вы хотите добавить его в любом случае, используя addSubview: должно работать нормально, если вы хотите анимацию, вы можете захотеть смотреть на CATransitions вместо анимации UIView.

Добавление заставки к окну или контроллеру основного вида должно выглядеть одинаково для пользователя.

Edit: Попробуйте этот фрагмент - вам нужно #include <QuartzCore/QuartzCore.h> и добавить платформу QuartzCore

// Using a CATransition
    CATransition* transition = [CATransition animation];
    transition.delegate = self; // if you set this, implement the method below
    transition.duration = 0.3;
    transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut];
    transition.type = kCATransitionMoveIn;
    transition.subtype = kCATransitionFromRight;
    [self.view.layer addAnimation: transition forKey: nil];
    [self.view addSubview: theNewView];

Добавьте это, если вам нужно что-то сделать после завершения перехода:

#pragma mark -
#pragma mark CAAnimation Delegate Methods
- (void)animationDidStop: (CAAnimation*)theAnimation finished: (BOOL)flag
{
    // Whatever you need to do when the animation is done.
}
0 голосов
/ 12 сентября 2012

Я не согласен с первым утверждением в другом ответе, которое гласит: «Если вы добавите изображение в свой проект с именем« Default.png », оно будет действовать как заставка».

Default.png - это изображение запуска. Apple HIG специально различает стартовое изображение и заставку.

В частности, там написано

Старайтесь не использовать свой стартовый образ как возможность предоставить:

  • «Опыт входа в приложение», такой как заставка
  • Окно "О программе"
  • Элементы брендинга, если они не являются статической частью первого экрана вашего приложения

Следовательно, для заставки используйте NSTimer или кнопку для пользователя, чтобы закрыть заставку.

...