UIImageView(image:
添加图片(并运行旧项目)不是bug。那么现在我们如何在代码中添加图片,因为它不会接受任何png或jpeg。let cellImage: UIImageView = {
let image = UIImageView(image: ???))
return image
}()
操作系统:macOS Mojave
开发工具:Xcode 10 Beta 4
UIImageView(image:
添加图片(并运行旧项目)不是bug。那么现在我们如何在代码中添加图片,因为它不会接受任何png或jpeg。let cellImage: UIImageView = {
let image = UIImageView(image: ???))
return image
}()
操作系统:macOS Mojave
开发工具:Xcode 10 Beta 4
⇧
+ ⌘
+ L
或位于Xcode右上角的 + 按钮。 - Cœur发现打开媒体库选项卡的快捷方式:
⇧+⌘+M
目前,官方文档对于 Xcode 10 beta 的某些用例没有涵盖,因此我无法找到将媒体部分移动到旧位置的方法。
为了让其他使用遗留代码的人受益,Swift图像字面量函数的代码和语法在Xcode 10与Swift4.2中仍然有效并可以完美运行。
无需回滚或重构使用这些图像字面量的现有代码,它们仍可按以下方式使用:
imageView.image = #imageLiteral(resourceName: imageNameString)
Xcode IDE的代码补全功能(或自动补全)已被停止使用。
更新
Xcode/Swift之前和当前版本中图像文字的表示方式不同:
image = #imageLiteral(resourceName: "flower.jpg")
正如这段摘录所示,图像字面量原来是与它们实际图像的缩略图一起显示的。然而,现在只使用了一个通用图标来代替。据推测,这是为了减轻集成开发环境的负担,通过消除处理和显示内联缩略图的开销实现。
TIP: 在添加图像代码后解决三个分辨率问题。
1. 删除其他图像,只保留一个图像。
2. 用文字注释您的行代码并添加文字图片,然后在代码中将出现文字图片,例如:#imageLiteral(resourceName="image@2x.png"
。
3. 在resourceName
值中删除@2x
和文件扩展名,如.png
,只保留图像名称:#imageLiteral(resourceName="image")
。
4. 取消注释! 图像将显示在代码中。
图像名称
(但仍将其保留为图像文字),而不必从选择器中选择。 - angtlin在Xcode 11中,媒体库现在位于视图 > 显示库 (SHIFT+CMD+L)。
使用
UIImage(imageLiteralResourceName: 'imageName')
不会返回可选值,而且运行良好。
只需使用#imageLiteral(,它就可以工作。
imageView.image = #imageLiteral(resourceName: imageNameString)
- 自动补全无法辅助,图片也没有显示,但这是完全有效的,可以完美地工作。 - iSofiaUIImage(named:)
方法,就像你所做的那样。总之,在迁移到 Swift 4.2 时,在这方面不需要进行任何代码重构。 - iSofia