Ios Apple watch multiple Assets.xAssets文件夹用途

Ios Apple watch multiple Assets.xAssets文件夹用途,ios,swift,xcode,apple-watch,watchos,Ios,Swift,Xcode,Apple Watch,Watchos,中的Assets.xcsets之间有什么区别 1) WatchKit应用程序 2) 手表套件分机 我不确定该将图像放在哪个文件夹中 我需要访问界面.情节提要中的图像(例如testImage.png),该图像位于WatchKit App文件夹和WatchKit Extension中。在控制器中,我使用以下方法进行设置: let menuIcon: UIImage? = UIImage(named: menu.iconName) 我试过: 选项1: 1) 在WatchKit应用程序和WatchKi

中的
Assets.xcsets
之间有什么区别

1) WatchKit应用程序

2) 手表套件分机

我不确定该将图像放在哪个文件夹中

我需要访问
界面.情节提要
中的图像(例如testImage.png),该图像位于
WatchKit App
文件夹和
WatchKit Extension
中。在控制器中,我使用以下方法进行设置:

let menuIcon: UIImage? = UIImage(named: menu.iconName)
我试过:

选项1:

1) 在
WatchKit应用程序和
WatchKit扩展程序中放置图像

这意味着在两个
Assets.xcsets
文件夹中有重复的图像

选项2:

1) 仅在
WatchKit App
中放置图像,并更改
Assets.xcsets
的目标成员身份,以支持
WatchKit App
WatchKit扩展


哪种方法更好?或者有更好的方法吗?

这似乎是watchOS 1在iPhone上实际运行WatchKit扩展并将信息和资源发送到手表上运行的WatchKit应用程序时的遗留问题

有些调用仅适用于WatchKit应用程序的Assets.xcsets文件夹,例如
setImageNamed:
setBackgroundImageNamed:

有几种方法可以更改接口对象的当前图像:

  • 使用setImageName:或setBackgroundImageName:方法分配已在Watch app捆绑包中的图像

  • 使用setImage:、setImageData:、setBackgroundImage:、或setBackgroundImageData:>方法将图像数据从WatchKit扩展传输到Watch应用程序

按名称指定图像更有效,因为只有名称字符串必须传输到您的Watch应用程序。watchOS在您的手表应用程序包中搜索具有指定名称的图像文件。高效指定图像的最有效方法是将它们存储在Watch应用程序包中,并根据需要使用setImageName:或setBackgroundImageName:来配置相应的对象

在WatchKit扩展中创建的图像必须先传输到Watch应用程序,然后才能使用。例如,在扩展中使用ImageName:方法从WatchKit扩展的捆绑包中加载图像,而不是从Watch应用的捆绑包中加载图像。然后可以调用setImage:方法,传入image对象。WatchKit扩展自动将图像传输到Watch应用程序进行显示。虽然与直接从Watch应用程序包加载图像相比,这有一些额外的开销,但它不应该对性能或电池寿命产生重大影响

就我个人而言,我不会将图像放在这两个文件夹中,因为这会增加应用程序的大小。我倾向于将故事板设置的图像放在WatchKit应用程序的文件夹中,以及将在扩展中以编程方式更改的所有图像