web-dev-qa-db-ja.com

Xcode 10 - 画像リテラルは利用できなくなりました

Xcode 10リリースノート:「Swiftイメージリテラルのコード補完はXcode 10で削除されました」

だから私はコードに画像を追加することができなかった(そして古いプロジェクトを実行する)ことはバグではありません。 UIImageView(image:を入力してもpngやjpegが受け付けられないため、コードに今後画像を追加する方法を教えてください。

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

    return image
}()

システム:macOS Mojave
Xcode:Xcode 10 Beta 4

67
Pawel Cichonski

メディアライブラリタブを開くためのショートカットを見つけました:

++M

現時点では公式ドキュメントはXcode 10 Betaのいくつかのユースケースをカバーしていないので、メディア部分を古い位置に移動する方法を見つけることができません。

85
Ron Gahlot

Xcode 10およびSwift 4.2 では、Xcode IDEのコード補完機能(またはオートコンプリート)のみが古い方法で廃止されました。これが新しい方法です。

image literalと入力するだけで、デフォルトのアイコンが表示されます。

enter image description here

このアイコンをダブルクリックすると、その右側にあるメディアライブラリが開きます。

enter image description here

画像を選択するだけで、以前と同じように機能します。

enter image description here

Xcodeでメディアライブラリを使用して、コードに画像リテラルを追加できます。

Show XCode media library

そして、ライブラリから画像を選択し、それをあなたのコードにドラッグ&ドロップします。

Choose image from library

画像リテラルを作成します

42

Swift Image Literalsを使用する従来のコードを持つ他の人のために、 イメージリテラル関数自体のコードと構文 は依然として有効で、Swift 4.2を搭載したXcode 10でも完全に機能します。

これらのイメージリテラルを使用する既存のコードをロールバックしたりリファクタリングする必要はありません。それらは、次のように使用することもできます。

imageView.image = #imageLiteral(resourceName: imageNameString)

Xcode IDEのコード補完機能(またはオートコンプリート)のみが廃止されました。


_ update _

以前のバージョンと現在のバージョンまたはXcode/Swiftでの画像リテラル表現の違い

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

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

抜粋が示すように、画像リテラルは実際の画像のサムネイルとインラインで表示されていました。ただし、現在では、代わりに汎用アイコンのみが使用されています。おそらくこれは、インラインサムネイルの処理と表示のオーバーヘッドを排除することによって、IDEの負担を軽減することになります。

19
iSofia

ヒント:コード内にリテラル画像を追加した後に3つの解像度を修正する。
1。別の画像を削除し、画像を1つだけ残します
2。あなたのラインコードを文字通りのイメージでコメントしてください、そしてコードのように文字通りのイメージが現れるでしょう:#imageLiteral(resourceName: "[email protected]"
3。 resourceName値で、@2xとファイル拡張子(.pngなど)を削除し、イメージ名のみを残す:#imageLiteral(resourceName: "image")
4。コメント解除画像はコードで表示されます。

10
Wesley Gomes
  • uIImage(imageLiteralResourceName: 'imageName')を使用してもオプションは返されず、正常に動作します
1
Francis Ken

私はXcode 10 beta 4を使っていますが、同じ問題があります。画像を渡すための古い方法を使用して解決しました

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)
0
Gianlo