图像未显示在 Apple Watch 上
Images not shown on Apple Watch
我的 Apple Watch 应用程序图像在 Apple Watch 模拟器上正确显示,就像菜单模块上的菜单图像在模拟器上正确显示一样。
我将我的应用程序上传到 iTunes 商店,Apple Reviewed 应用程序并通过说菜单图像未在 Apple Watch 上显示而失败。
知道为什么菜单图像在 Apple Watch 模拟器上显示时没有显示在实际 Apple Watch 上。
我直接从 storyboard 设置菜单图像。我应该以编程方式设置图像吗?请帮我。
您的图像是否存储在您的 WatchKit 应用程序包中?不幸的是,界面构建器允许您 select 来自任何包的图像,但只有存储在您的 WatchKit 应用程序包中的图像 - 或者由您的扩展传输 - 在硬件上 运行 时才可见。
您的图像必须在资产目录中才能在 Apple Watch 设备上显示
https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html
感谢您的快速帮助!每个人都是对的,我们应该更喜欢使用 Asset Catalog ,我想分享这个问题的逐步解决方案,我从 behrens---
如果图像是您已有的静态资源,它们应该位于 WatchKit 应用程序包中。如果它们是动态的,您可以在运行时从 WatchKit 扩展中设置它们。
它们必须被命名为@2x,是的。
最好将它们存储在资产目录中。不确定为什么不这样做。
如果展开属性检查器,可以将资产目录中图像的支持范围缩小到仅 Apple Watch。如果您只有一个版本,请将其放入 2x 桶中。如果您有特定于设备尺寸的图像,请相应地删除它们,我会将 38mm 尺寸的图像添加到 2x 存储桶中作为后备。
更多详情请访问link - link
当您在代码中使用图像时。使用 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)
}
}
我们有两个 Assets.xcassets 文件。其中之一用于 Interface.storyboard 并捆绑 Watch 应用程序。其中第二个是捆绑扩展。如果你从代码中设置图像,你应该在包扩展中有这个图像。
检查图片的分辨率。我至少在 Apple Watch Emulation
中尝试了 2 Picture 和最低分辨率显示
我的 Apple Watch 应用程序图像在 Apple Watch 模拟器上正确显示,就像菜单模块上的菜单图像在模拟器上正确显示一样。
我将我的应用程序上传到 iTunes 商店,Apple Reviewed 应用程序并通过说菜单图像未在 Apple Watch 上显示而失败。
知道为什么菜单图像在 Apple Watch 模拟器上显示时没有显示在实际 Apple Watch 上。
我直接从 storyboard 设置菜单图像。我应该以编程方式设置图像吗?请帮我。
您的图像是否存储在您的 WatchKit 应用程序包中?不幸的是,界面构建器允许您 select 来自任何包的图像,但只有存储在您的 WatchKit 应用程序包中的图像 - 或者由您的扩展传输 - 在硬件上 运行 时才可见。
您的图像必须在资产目录中才能在 Apple Watch 设备上显示
https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html
感谢您的快速帮助!每个人都是对的,我们应该更喜欢使用 Asset Catalog ,我想分享这个问题的逐步解决方案,我从 behrens---
如果图像是您已有的静态资源,它们应该位于 WatchKit 应用程序包中。如果它们是动态的,您可以在运行时从 WatchKit 扩展中设置它们。
它们必须被命名为@2x,是的。
最好将它们存储在资产目录中。不确定为什么不这样做。
如果展开属性检查器,可以将资产目录中图像的支持范围缩小到仅 Apple Watch。如果您只有一个版本,请将其放入 2x 桶中。如果您有特定于设备尺寸的图像,请相应地删除它们,我会将 38mm 尺寸的图像添加到 2x 存储桶中作为后备。
更多详情请访问link - link
当您在代码中使用图像时。使用 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)
}
}
我们有两个 Assets.xcassets 文件。其中之一用于 Interface.storyboard 并捆绑 Watch 应用程序。其中第二个是捆绑扩展。如果你从代码中设置图像,你应该在包扩展中有这个图像。
检查图片的分辨率。我至少在 Apple Watch Emulation
中尝试了 2 Picture 和最低分辨率显示