所以我知道 Default.png 可用于 iPhone 应用程序中的启动画面,但我发现它看起来不专业,因为应用程序完成加载后没有动画。
所以我正在尝试添加一个会淡出的启动画面,然后转到上一个 View 。
互联网上的大多数示例往往基于使用 addSubview 的旧方式。我将如何将其添加到我的 Storyboard应用程序中。
当前代码(时间错误,因为我不确定它最初是否有效)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
splashView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default2.png"]];
splashView.frame = CGRectMake(0, 0, 324, 480);
[_window addSubview:splashView];
[_window bringSubviewToFront:splashView];
[_window makeKeyAndVisible];
[self performSelector:@selector(removeSplash) withObject:nil afterDelay:1500.2];
return YES;
}
-(void)removeSplash;
{
[UIView animateWithDuration:1.0 animations:^{self.splashView.alpha = 0.0;} completion:^(BOOL finished){ [splashView removeFromSuperview]; }];
[splashScreen release];
}
最佳答案
除了Guntis Treulands的回答我有另一种方法可以做到这一点,而无需将动画代码移出 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法。
只需将您的 splashView 直接添加到 _window.rootViewController.view
.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIImage *splashImage = [UIImage autoAdjustImageNamed:@"Default.png"];
UIImageView *splashImageView = [[UIImageView alloc] initWithImage:splashImage];
[self.window.rootViewController.view addSubview:splashImageView];
[self.window.rootViewController.view bringSubviewToFront:splashImageView];
[UIView animateWithDuration:1.5f
delay:2.0f
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
splashImageView.alpha = .0f;
CGFloat x = -60.0f;
CGFloat y = -120.0f;
splashImageView.frame = CGRectMake(x,
y,
splashImageView.frame.size.width-2*x,
splashImageView.frame.size.height-2*y);
} completion:^(BOOL finished){
if (finished) {
[splashImageView removeFromSuperview];
}
}];
return YES;
}
关于iphone - iPhone应用程序中的启动画面使用Storyboard延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962942/