20

我的 Apple Watch 应用程序图像在 Apple Watch 模拟器上正确显示,就像菜单模块菜单图像在模拟器上正确显示一样。
我在 iTunes 商店、Apple Reviewed 应用程序上上传了我的应用程序,但通过说 Apple Watch 上没有显示菜单图像而失败了。

知道为什么菜单图像在 Apple Watch Simulator 上显示时未显示在实际 Apple Watch 上。
我直接从 storyboard 设置菜单图像。我应该以编程方式设置图像吗?请帮我。

4

6 回答 6

16

感谢您的快速帮助!每个人都是对的,我们应该更喜欢使用资产目录,我想分享我从behrens提供的苹果开发者论坛得到的这个问题的逐步解决方案---

  1. 如果图像是您已经拥有的静态资源,它们应该驻留在 WatchKit 应用程序包中。如果它们是动态的,您可以在运行时从 WatchKit 扩展中设置它们。

  2. 它们必须是@2x 命名的,是的。

  3. 最好将它们存储在资产目录中。不确定你为什么不这样做的原因。

  4. 如果您展开属性检查器,您可以将资产目录中的图像支持范围缩小到仅 Apple Watch。如果您只有一个版本,请将其放入 2x 存储桶中。如果您有特定于设备大小的图像,请相应地删除它们,我会将 38 毫米大小的图像添加到 2x 存储桶以作为后备。

欲了解更多详情,请访问链接 -链接

于 2015-04-27T06:10:54.227 回答
9

您的图像必须在资产目录中才能显示在 Apple Watch 设备上

https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html

于 2015-04-20T10:15:15.760 回答
7

我们有两个 Assets.xcassets 文件。其中之一是用于 Interface.storyboard 和 bundle Watch 应用程序。第二个是捆绑扩展。如果你从代码中设置图像,你应该在包扩展中有这个图像。

文件夹树

于 2016-04-11T20:27:01.743 回答
1

当您在代码中使用图像时。使用 UIImage(named:) 初始化程序有一个小问题。它只在本地包中查找。我们需要将这些图像加载到扩展的 Images.xcassets 中。我们上次创建的 WatchKit App 文件夹中的那些不会到达这里。

    import WatchKit
    import Foundation

    class InterfaceController: WKInterfaceController {

    enum GrossMarket: Int{
        case egg = 1
        case apple = 2
        case orange = 3
    }

        //preload images
        let egg = UIImage(named: "egg")
        let apple = UIImage(named: "apple")
        let orange = UIImage(named: "orange")
}

    func updateDisplay(activity:Activites){
        switch activity{
        case .egg:
            statusImage.setImage(egg)
        case .apple:
            statusImage.setImage(apple)
        case .orange:
            statusImage.setImage(orange)
        default:
            statusImage.setImage(orange)

        }
    }
于 2015-08-04T16:10:31.030 回答
0

您的图像是否存储在 WatchKit 应用程序的捆绑包中?不幸的是,界面生成器允许您从任何包中选择图像,但只有存储在 WatchKit 应用程序包中或由您的扩展程序传输的图像在硬件上运行时才可见。

于 2015-04-20T09:49:36.483 回答
0

检查图片的分辨率。我至少在 Apple Watch Emulation 中尝试 2 Picture 和最低分辨率显示

于 2019-05-25T13:29:57.183 回答