102

Xcode 10 发行说明:“Xcode 10 中删除了 Swift 图像文字的代码完成”

所以这不是我无法在代码中添加图像(并运行旧项目)的错误。从现在开始,我们如何在代码中添加图像,因为仅键入UIImageView(image:不会接受任何 png 或 jpeg。

let cellImage: UIImageView = {
    let image = UIImageView(image: ???))

    return image
}()

系统:macOS Mojave
Xcode:Xcode 10 Beta 4

4

9 回答 9

136

Xcode 10 和 Swift 4.2中,只有 Xcode IDE 的代码完成功能(或自动完成)已停止使用旧方式。这是新方法:

只需键入image literal,它将以默认图标完成。

在此处输入图像描述

 

双击此图标,它将打开其右侧的媒体库。

在此处输入图像描述

 

只需选择您的图像,它就可以像以前一样工作!

在此处输入图像描述

于 2018-09-26T17:20:42.733 回答
99

找到打开媒体库选项卡的快捷方式:

⇧</kbd>+⌘</kbd>+M

在这一点上,官方文档没有涵盖 Xcode 10 beta 的一些用例,所以我无法找到将媒体部分移动到旧位置的方法。

于 2018-09-18T12:43:52.957 回答
55

您可以使用 Xcode 中的媒体库将图像文字添加到您的代码中:

显示 XCode 媒体库

然后从库中选择图像并将其拖放到您的代码中

从库中选择图像

它将创建图像文字

于 2018-09-17T13:26:08.100 回答
36

为了其他使用Swift Image Literals的遗留代码的人的利益,图像文字函数本身的代码和语法仍然有效,并且在带有 Swift 4.2 的 Xcode 10 中完美运行。

无需回滚或重构利用这些图像文字的现有代码,它们仍然可以按如下方式使用:

imageView.image = #imageLiteral(resourceName: imageNameString)

只有 Xcode IDE 的代码完成功能(或自动完成)已停止使用。


更新

以前版本和当前版本或 Xcode/Swift 中图像文字表示的差异:

image = #imageLiteral(resourceName: "flower.jpg")

图像 = #imageLiteral(资源名称:

如摘录所示,图像文字与其实际图像的缩略图一致地表示。但是,现在只使用了一个通用图标来代替它。据推测,这可以通过消除处理和显示内嵌缩略图的开销来减轻 IDE 的负担。

于 2018-09-02T07:52:53.080 回答
26

提示:在代码中添加文字图像后修复三种分辨率。
1.删​​除另一个,只保留一个图像
2.用文字图像注释您的行代码,然后代码中会出现文字图像,如:#imageLiteral(resourceName: "image@2x.png"
3.在resourceName值,删除@2x和文件扩展名中,如.png,仅保留图像名称:#imageLiteral(resourceName: "image")
4.取消注释!图像将显示在代码中。

于 2018-11-09T02:23:05.640 回答
10

在 Xcode 11 中,媒体库现在位于 View > Show Library (SHIFT+CMD+L) 下。

于 2019-08-28T09:31:18.183 回答
9

如果有人使用Xcode 11,那么您可以使用以下选项找到所有媒体:

在此处输入图像描述

在此处输入图像描述

于 2019-11-08T07:49:10.330 回答
4

使用

UIImage(imageLiteralResourceName: 'imageName')

不会返回一个可选的并且工作得很好

于 2019-06-15T11:48:26.090 回答
0

我正在使用 Xcode 10 beta 4,我遇到了同样的问题!使用旧方式传递图像已解决

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)
于 2018-07-19T10:52:36.747 回答