启动画面问题

时间:2011-05-05 06:59:50

标签: iphone ios ipad splash-screen

我正在构建一个应用程序。对于启动画面,我刚刚将default.png带入了资源文件夹,并将睡眠时间设置为AppDelegate.m。到这里它工作正常,我的应用程序正在使用启动屏幕启动给定秒。现在我想更改翻转启动画面的ViewTransition。我怎么能这样做?

由于

5 个答案:

答案 0 :(得分:4)

只需使用uiimageview添加视图并将其图像设置为default.png。在开头加载此视图。启动屏幕后卸载此shuld是您查看然后翻转它。

答案 1 :(得分:2)

您无法使用default.png进行翻转过渡,尝试在窗口中添加包含该图像的视图,并将过渡应用于该视图。

答案 2 :(得分:2)

你不能使用deafult.png图像将渐变样式赋予启动画面。使用启动图像创建另一个UIViewController,只需使用所需的过渡样式和时间关闭此视图控制器。

答案 3 :(得分:2)

在启动屏幕加载后。只需用新的UIImageView替换它并设置翻转过渡。

答案 4 :(得分:1)

以上所有人都对两件事情是正确的:

我。您无法将过渡添加到Default.png II。您需要添加UIView(或UIImageView)才能添加转换。

以下是您可以使用的示例代码:

AppDelegate.h

@interface AppDelegate: .... {
...
@property (strong, nonatomic) UIImageView *splashView;
...
@end

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:   (NSDictionary *)launchOptions
{
// fade Default.png into next screen
self.splashView = [[UIImageView alloc] initWithFrame:
                   CGRectMake(0, 0, self.window.frame.size.width,        self.window.frame.size.height)];

// get the right image (does not work on simulator)
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    self.splashView.image = [UIImage imageNamed:@"Default.png"];
else {
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation]))
        self.splashView.image = [UIImage imageNamed:@"Default-Landscape.png"];
    else
        self.splashView.image = [UIImage imageNamed:@"Default-Portrait.png"];
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
}
if (self.splashView) {
    [self.window.rootViewController.view addSubview:self.splashView];
    [self.window.rootViewController.view bringSubviewToFront:self.splashView];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.window cache:YES];
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
    self.splashView.alpha = 0.0;
    [UIView commitAnimations];
}
return YES;

}

评论

注意我如何使用上面的setAnimationTransition:UIViewAnimationTransitionNone。 此外,您可以使用委托自定义(基本上从超级视图中删除splashView)。