我想要欺骗主要闪屏的感觉,无论何时applicationDidBecomeActive被调用都会逐渐消失,但它无法正常工作.我究竟做错了什么?
- (void)applicationDidBecomeActive:(UIApplication *)application
{
if(IS_IPHONE_5)
splash = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default-568h.png"]];
else
splash = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
[self.window.rootViewController.view addSubview:splash];
[UIView animateWithDuration:0.5
animations:^{
splash.alpha = 0;
}
completion:^(BOOL finished) {
[splash removeFromSuperview];
}];
}
Run Code Online (Sandbox Code Playgroud)
然后你需要在某处定义以下内容.我使用该项目.pch但您可以根据需要使用标题.
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
Run Code Online (Sandbox Code Playgroud)
我发现,从ios6开始,你可以做到这一点
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UIView animateWithDuration:0.2
delay:0
options: UIViewAnimationCurveEaseIn
animations:^{
self.window.viewForBaselineLayout.alpha = 0; // and at this alpha
}
completion:^(BOOL finished){
}];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
然后立即开始
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UIView animateWithDuration:0.5
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
self.window.viewForBaselineLayout.alpha = 1; // and at this alpha
}
completion:^(BOOL finished){
}];
Run Code Online (Sandbox Code Playgroud)
它从加载屏幕到现在加载的应用程序屏幕提供交叉淡入淡出效果.
如果这确实是您的代码,则您的图像名称可能有拼写错误。(如果没有,请让我们知道“不工作”是什么意思。)
此外,启动画面通常不会每次都会出现applicationDidBecomeActive:。didFinishLaunchingWithOptions:是您知道自己已启动且启动画面已代表您显示的时间。
| 归档时间: |
|
| 查看次数: |
8216 次 |
| 最近记录: |