質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.60%

ソースコード(.swift )から、assets.xcassetsの画像を取り込みたい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 4,193

score 38

メインストーリーボードではなく、.swiftのファイルから画像を読み込みたいです。

「メインストーリーボードからやらんかい。クソ素人が!」的な回答では解決しません。Udemyのクセが強い先生の動画に沿ってやっているからです。僕もできることならそうしたいです。

import UIKit

class LoginVC: UIViewController {

    let logoContainerView: UIView = {
        let view = UIView()

   ここにです!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        let logoImageView = UIImageView(image: )
        return view
    }()


    let emailTextField: UITextField = {
        let tf = UITextField()
        tf.placeholder = "Email"
        tf.backgroundColor = UIColor(white: 0, alpha: 0.03)
        tf.borderStyle = .roundedRect
        tf.font = UIFont.systemFont(ofSize: 14)


        return tf



    }()



    let passwordTextField: UITextField = {
        let tf = UITextField()
        tf.placeholder = "password"
        tf.backgroundColor = UIColor(white: 0, alpha: 0.03)
        tf.borderStyle = .roundedRect
        tf.font = UIFont.systemFont(ofSize: 14)
        return tf



    }()



    let loginButtom: UIButton = {
        let buttom = UIButton(type: .system)
        buttom.setTitle("Login", for: .normal)
        buttom.setTitleColor(.white, for: .normal)
        buttom.backgroundColor = UIColor(red: 149/255, green: 204/255, blue: 244/255, alpha: 1)
        buttom.layer.cornerRadius = 5
        return buttom
    }()









    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .white


       configureViewComponets()
}


    func configureViewComponets(){
        let stackView = UIStackView(arrangedSubviews: [emailTextField, passwordTextField, loginButtom])

        stackView.axis = .vertical
        stackView.spacing = 10
        stackView.distribution = .fillEqually

        view.addSubview(stackView)
        stackView.anchor(top: view.topAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 50, paddingLeft: 40, paddingBottom: 0, paddingRight: 40, width: 0, height: 140)




    }








}


「いや、そこにassets.xcassetsに置いてる画像ファイルデータを入れて、viewDidLoadに〜」と思っているかもしれませんが、問題は、(image: )にassets.xcassetsに置いてあるはずの画像データが入らないのです!!Why! American teacher!?

わかりやすい日本語に直しますと、

イメージ説明

上のInstagram_logo_whiteを入れたいんですが、
イメージ説明
予想に出ないんじゃ〜。

先生は、こんな感じ
イメージ説明
予想に出てるんじゃ〜。なんでじゃ〜。

ちなみにコピペしても
イメージ説明

>Use of unresolved identifier 'Instagram_logo_white'
これでは解決しません。的なエラーメッセが届きます。
ヒントが少ない〜。

僕の階層です。
イメージ説明

よろしくおねがいしまぁぁぁすっ!!(サマーウォーズ風)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

僕と同じエラーの場合、基本的にimage literalかShift+Command+Mを試してください。それでも無理だった場合、assets.xcassetsではなく、メインファイル直下に画像を入れてから以下を参考にしてください。 

 // UIImage インスタンスの生成
        // 画像はAssetsに入れてない場合はjpgなので拡張子を入れます。pngだったら、jpgを変えてください。
        let image1:UIImage = UIImage(named:"wafuku@2x.jpg")!

        // UIImageView 初期化
        let imageView = UIImageView(image:image1)


これでいけました。
また、assets.xcassetsに入れたパターンで実装できたら、共有しますね〜。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ただ単に" "で囲む必要があるのではないですか?
UIImageViewの使い方検索しましたか?

一つ思い当たるものとしては、
もしかして、イメージリテラル?のことかもしれません。
もしその場合、Xcode 10では削除されましたって書いてありますが、、、
「Xcode IDEのコード補完機能(または自動補完)のみが中止されました。」
https://code.i-harness.com/ja-jp/q/31042e3

また、下記も参考になると思います。
https://teratail.com/questions/168178#reply-250902

いずれにしろ、全く同じコードじゃなくていいのではないですか??
実現できればいいのですし、Xcode10で削除と書かれてますし、
多少書き換えが必要になると思います。
Udemyのコースのバージョンも確認を。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/18 00:07

    いや、、、お恥ずかしながら、イメージリテラルなんてついこの前まで知りませんでした。
    https://teratail.com/questions/168178#reply-250902
    の質問で、全く的外れな回答をして、その時に勉強させてもらった内容です。

    Udemyの先生のコード補完機能のとこで、左側がM, V, Cとかじゃなくて、
    画像そのものであるのを見て、もしかしたらと、閃いただけです(^_^;)

    キャンセル

  • 2019/01/18 00:39

    なるほど、https://teratail.com/questions/168178#reply-250902、見ました。割と恥ずかしい展開っすね。笑
    でも、コメントぐらい返さんかいって思いますけどね。質問してる側なんだから。

    僕の場合、image literalは使えず、Shift+Command+Mでメディアライブラリは出てきたのですが、追加できませんでした。

    で、形式を見てみると、PNGでした。
    PNGで追加できる方法を調べます。

    キャンセル

  • 2019/01/18 02:58

    おかげさまで、解決しました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る