Iphone启动画面

时间:2010-02-12 19:00:15

标签: iphone objective-c animation splash-screen

我真的想尽力而为,但我无法真正发现我的代码出了什么问题。我做了很多搜索,但我想我无法理解一些客观的基础知识;)

我的第一个问题与以下代码有关:

[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 个答案:

答案 0 :(得分:3)

如果您将图像添加到名为“Default.png”的项目中,它将充当启动画面。

强制用户不必要地查看屏幕通常被视为不良。

如果你确实想要使用addSubview添加一个:应该可以正常工作,如果你想要动画,你可能想要查看CATransitions而不是UIView动画。

将启动画面添加到窗口或主视图控制器应该对用户显示相同。

修改 试试这个片段 - 您需要#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.
}

答案 1 :(得分:0)

我不同意另一个答案中的第一个陈述,即“如果你向你的项目添加一个名为”Default.png“的图像,它将作为一个闪屏。'

Default.png是启动图像。 Apple HIG专门区分启动图像和启动画面。

特别是,它说

  

避免使用您的启动图片作为提供的机会:

     
      
  • “应用程序输入体验”,例如启动画面
  •   
  • 关于窗口
  •   
  • 品牌元素,除非它们是应用程序第一个屏幕的静态部分
  •   

因此,对于启动画面,请使用NSTimer或按钮让用户关闭启动画面。