Xcode 10 - 图像文字不再可用

Paw*_*ski 81 beta xcode image image-literals xcode10

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

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

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

    return image
}()
Run Code Online (Sandbox Code Playgroud)

系统:macOS Mojave
Xcode:Xcode 10 Beta 4

Dan*_*rde 98

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

只需输入即可image literal完成默认图标.

在此输入图像描述

 

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

在此输入图像描述

 

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

在此输入图像描述

  • 通过这种方式名称找不到图像是不可能的.而我的设计师给了我所有的资产作为透明白色的png,所以所有的缩略图都以随机的顺序呈现为纯白色......要挑选的图像是不可能完成的任务.-_- (54认同)
  • 嗨,Coeur,请告诉你的设计将所有图像都放在灰色上,然后将资源更改为模板,然后你可以在Storyboard或代码上着色:) (2认同)

Ron*_*lot 94

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

+ +M

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

  • 太糟糕了,我无法输入enter来插入一个项目.我必须使用鼠标光标将项目拖动到代码中.- (7认同)
  • 媒体库没有插入正确的图像文字,但是...它将3个图像文字放入3种不同的图像分辨率中。 (4认同)

小智 47

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

显示XCode媒体库

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

从库中选择图像

它将创建图像文字

  • 这为每个`@ 1x`,`@ 2x`和`@ 3x`资产创建了一个文字,因此无法编译 (15认同)
  • 有趣的是,这在使用pdf资源时为我创建了无效的图像文字,从而导致运行时崩溃 - 在GM构建中. (3认同)
  • 认真地说,这应该如何工作?有没有办法拖放所有三种分辨率的一种表示形式?这似乎是苹果公司的巨大监督。 (2认同)

iSo*_*fia 21

为了使用具有Swift图像文字的遗留代码的其他人的利益,图像文字函数本身的代码和语法仍然有效,并且在Xcode 10中使用Swift 4.2完美地工作.

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

imageView.image = #imageLiteral(resourceName: imageNameString)
Run Code Online (Sandbox Code Playgroud)

仅停止了Xcode IDE的代码完成功能(或自动完成).


UPDATE

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

image = #imageLiteral(resourceName: "flower.jpg")
Run Code Online (Sandbox Code Playgroud)

image = #imageLiteral(resourceName:

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

  • 我们知道为什么Apple会把它拿出来吗?图像文字将来是否会被折旧? (2认同)
  • 我认为这只是一个错误 (2认同)

小智 14

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

  • 谢谢。目前,如何使用强大的垃圾箱XCode图像字面量 (2认同)

sam*_*ize 9

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


小智 7

使用

UIImage(imageLiteralResourceName: 'imageName')
Run Code Online (Sandbox Code Playgroud)

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


gur*_*uru 7

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

在此处输入图片说明

在此处输入图片说明


小智 0

我正在使用 Xcode 10 beta 4,我也有同样的问题!解决了使用旧方法传递图像的问题

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)
Run Code Online (Sandbox Code Playgroud)