如何轻松制作iPhone发布图像?

nyb*_*bon 16 iphone xcode splash-screen ios

根据Apple的指南,iPhone应用程序的启动图像/启动画面应该是一个预渲染的静态图像,看起来类似于应用程序的第一个屏幕.

以下是Apple有关此文档的一些链接:

1)启动图像,iOS人机界面指南:

https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5

2)应用程序启动(默认)图像,iOS应用程序编程指南:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html#//apple_ref/doc/uid/TP40007072-CH6-SW12

我只是想知道如何轻松创建这样的启动图像.在大多数情况下,似乎启动图像应该是空状态栏+导航栏+空表/视图+标签栏的组合,并且每个应该使用iOS的预定义颜色方案进行渲染.

但我找不到任何关于我应该怎么做的文档,也找不到与Xcode相关的任何条目.是否有Apple的官方工具可以轻松渲染启动图像?或者所有的应用程序开发人员只是使用一些模型iPhone控件+ Photoshop来做到这一点?

任何帮助表示赞赏.谢谢.

Seb*_*mba 14

这不是什么大问题,组成主屏幕的静态XIB文件(空标签栏,空导航栏)或任何东西.只是没有放置任何元素或标签的背景.

您可以在具有内置屏幕截图功能的iPhone模拟器中启动此"空"应用程序.使用iPhone Simulator Cropper等附加软件,您可以将图像裁剪为首选尺寸.

这将是我做这件事的方法.


Mat*_*uch 7

由于我发现删除nib文件中的内容很麻烦,因此我使用代码方法.

每个项目的代码都不同.但是你会明白这个想法.

// uncomment to take a screenshot for the launch image
//#define SCREENSHOTMODE 

- (void)viewDidLoad {
    [super viewDidLoad];
    /* regular stuff */
#ifdef SCREENSHOTMODE
        self.navigationItem.leftBarButtonItem = nil;
        self.navigationItem.rightBarButtonItem = nil;
        self.title = nil;
        [self deactivateContentForSubviewsInView:self.view];
#endif
}


#ifdef SCREENSHOTMODE
- (void)deactivateContentForSubviewsInView:(UIView *)contentView {
    for (UIView *aView in contentView.subviews) {
        if ([aView isKindOfClass:[UILabel class]]) {
            [(UILabel *)aView setText:nil];
        }
        else if ([aView isKindOfClass:[UITableView class]]) {
            [(UITableView *)aView setDataSource:nil];
        }
        else if ([aView isKindOfClass:[UIToolbar class]]) {
            [(UIToolbar *)aView setItems:nil];
        }
        else if ([aView isKindOfClass:[UIImageView class]]) {
            [(UIImageView *)aView setImage:nil];
        }
        else if ([aView isKindOfClass:[UIView class]]) {
            // i often put views in UIViews to group them
            [self deactivateContentForSubviewsInView:aView];
        }
    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

如果您只有少量对象,则可以直接删除UI元素的内容.没有循环.


nyb*_*bon 7

似乎Xcode中没有为此构建这样的工具.我最终得到的方法就像Sebastian Wramba上面说的那样略有不同.我使用Xcode 4.2故事板进行我的应用程序的UI设计,这是我在Xcode 4.2故事板中执行此操作的步骤:

  1. 将空视图控制器从"对象库"拖动到故事板

  2. 根据初始屏幕布局,将空导航栏/表格视图/标签栏/其他组件添加到上面的新场景中

  3. 单击故事板中的视图控制器,在视图控制器的"属性检查器"中,有一个名为"初始场景:是初始视图控制器"的复选框.检查一下.

  4. 在Xcode中启动应用程序,您应用程序的初始屏幕将设置为您刚刚创建的应用程序.截取屏幕截图并将其用作启动图像.

  5. 通过选中"初始场景"复选框,将初始场景设置回真实的初始场景.

我仍然会将Sebastian Wramba的解决方案标记为我的问题的答案,因为一般的想法是相同的,只需在Xcode中为它创建一个专用的UI.