【问题标题】:How can I make an iPhone launch image easily?如何轻松制作 iPhone 启动图像?
【发布时间】:2012-02-29 18:05:42
【问题描述】:

根据 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 中找不到任何似乎与此相关的条目。是否有任何苹果官方工具可以轻松渲染启动图像?还是所有的应用开发者都只是简单地使用一些 iPhone 模型控件 + Photoshop 来做到这一点?

感谢任何帮助。谢谢。

【问题讨论】:

    标签: iphone ios xcode splash-screen


    【解决方案1】:

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

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

    这就是我的做法。

    【讨论】:

    • 我最终得到了类似的解决方案,但我使用的是 Xcode 4.2 的故事板,所以有一点不同。请看下面我的回答。并感谢 iPhone Simulator Cropper 的链接,我以前从来不知道有这样的工具。
    • 这就是我所做的。我的工作区中有一个专门用于此的项目,并在模拟器中针对 XCAssets 文件所需的每个设备和方向启动应用程序。一个问题,这对 Xcode 7 来说似乎是新的,当您捕获屏幕截图(命令 S)时,您需要将模拟器窗口缩放到 100%(命令 1)以获得正确的图像大小。
    【解决方案2】:

    满足您需求的最简单解决方案 - 启动您的应用程序,截取初始状态的屏幕截图(设备上的主页+电源按钮),瞧!您有一个漂亮的 png 文件,其中包含您的初始应用程序状态,并根据需要使用 Apple 的配色方案。

    【讨论】:

    • 但是屏幕截图会和我的应用的初始屏幕一样,用户可能会认为应用已经完全加载,但显然它不是,也无法响应用户的操作。
    • 您可以自定义应用程序的特殊启动来实现这种外观 - 例如确保所有数据元素为空,甚至通过 IB 隐藏一些元素
    • 另外,如果有状态栏,那就不好了……需要剪掉
    【解决方案3】:

    我在调试构建中删除了我的数据源,因此应用程序启动为空,然后构建并运行它,并截取空应用程序的屏幕截图。为了建议用户稍等,我可能会使用 Photoshop 覆盖我的商标图像或一些飞溅的徽标,部分遮挡最明显的控制。如果它是一个有趣的应用程序,我还可以在应用程序开始运行时将这些徽标图标的副本设置为动画。

    【讨论】:

      【解决方案4】:

      因为我发现删除 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
      

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

      【讨论】:

      • 这是一个非常有趣的想法。以前从来没有想过。
      【解决方案5】:

      Xcode 中似乎没有这样的工具。我最终得到了一种类似于 Sebastian Wramba 上面所说的方法,但略有不同。我使用 Xcode 4.2 故事板来设计我的应用程序的 UI,这是我在 Xcode 4.2 故事板中执行此操作的步骤:

      1. 将一个空视图控制器从“对象库”拖到情节提要

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

      3. 点击storyboard中的view controller,在view controller的“Attributes Inspector”中,有一个叫做“Initial Scene: Is Initial View Controller”的复选框。检查一下。

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

      5. 选中“初始场景”复选框,将初始场景设置回您的真实初始场景。

      我仍然会将 Sebastian Wramba 的解决方案标记为我的问题的答案,因为总体思路是相同的,只需在 Xcode 中为其创建一个专用 UI​​。

      【讨论】:

        【解决方案6】:

        甚至比这更容易。拉起您想要放置在手机上的启动画面的图像。将图像保存到相机胶卷。打开相机胶卷中的图像。点击图像以获得全屏视图。截屏。通过电子邮件将该图像发送到您的计算机。将文件的结尾从 PNG 更改为 png,我知道这很糟糕 :) 将图像添加到您的启动图像区域。瓦拉! ;)

        【讨论】:

          【解决方案7】:

          您可以使用 iOS 8 启动屏幕 XIB 来使用模拟器生成静态启动图像,如果您支持 iOS 7 或更早版本,则可能必须这样做。

          1. 创建启动屏幕 XIB。
          2. 在 Xcode 的项目导航器中选择项目本身,然后在 General > Deployment Info 下将 Main Interface 字段更改为启动屏幕 XIB。此步骤会将启动屏幕 XIB 留在模拟器中,以便您有时间在步骤 4 中截屏。
          3. 在模拟器中启动您的应用程序。
          4. 启动屏幕出现在模拟器中后,选择文件 > 保存屏幕截图

          对您需要支持的每台设备重复此过程。您可能必须使用图像编辑器从屏幕截图中删除状态栏。

          【讨论】:

            【解决方案8】:

            如果您需要一个带有导航栏和标签栏的简单启动屏幕,我的建议是使用启动文件。在 iOS 8 及更高版本中,您可以创建 XIB 或故事板文件,而不是静态启动图像。

            您可以在下一个链接中阅读更多相关信息: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

            【讨论】:

              【解决方案9】:

              我设置了以上所有内容。但是再次调试时它不起作用。我从模拟器和 iPhone 中删除了该应用程序并立即工作

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-02-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-05-23
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多