为iPhone应用添加徽标

时间:2009-12-14 15:04:17

标签: iphone

我想添加徽标视图作为iPhone应用程序午餐。我编码如下

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    UIImage image = [[UIImage alloc] imageWithContentsOfFile:@"1.jpg"];
        UIImageView view = [[UIImageView alloc] initWithImage:image];
        [window addSubViews:view];

        [NSThread sleepForIntervalTime:10];
        [view removeFromSubview];
    [window addSubview: navigationController.view];
    [window makeKeyAndVisible];
}

但是模拟器无法显示我想要的。只显示navigationController的视图。 我认为原因是iPhone渲染了“applicationDidFinishLaunching”之后的第一个视图 还有其他解决方案吗?

2 个答案:

答案 0 :(得分:3)

只需将您想要成为LOGO的图像添加到项目中,名称为: Default.png

它将自动成为您应用程序的启动屏幕。

您的方法无效。 applicationDidFinishLaunching代理在所有加载完成后运行。此外,将其延迟10秒将不准确,因为应用程序在某些设备上的加载速度可能比其他设备快。

答案 1 :(得分:1)

Pablo是对的 - 你可以使用Default.png。

但是,您的代码永远不会有两个原因。

1)

应用程序的主线程是UI线程 - 负责处理更新接口的线程,这是运行applicationDidFinishLaunching:的线程。

如果您只是致电[NSThread sleepForIntervalTime:10],线程将会休眠。但是,这也意味着当线程处于休眠状态时,UI将不会更新。然后,当您致电[view removeFromSuperview]时,它将移除图像并继续。你永远不会看到图像!

要使代码正常工作,您应该执行以下操作:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    [window addSubview: navigationController.view];

    UIImage *image = [UIImage imageWithContentsOfFile:@"1.jpg"];
    UIImageView *view = [[UIImageView alloc] initWithImage:image];
    [window addSubView:view];
    [view release];

    [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(removeImage:) userInfo:view repeats:NO];
    [window makeKeyAndVisible];
}


- (void) removeImage:(NSTimer *)timer {
    UIImageView *view = (UIImageView *)timer.userInfo;
    [view removeFromSuperview];
}

此代码将显示10秒的图像,然后将其删除。但是,如果您只想在启动时使用图像,那么使用Default.png肯定是这样做的方法!

2)

您已经添加了图像前面的导航器视图 - 在上面的代码中,我已经将导航器的视图添加到UIImage之前。这意味着图像将在导航器的前方延迟10秒,直到它被移除,从而显示导航器视图。

希望这有帮助,

萨姆