ホーム

Swift3でサーバーにある画像(URL)をUIImageとして描画する方法

 

参考

Swift 3: Display Image from URL

環境

-Swift3
-Xcode8

実装

まずはletで宣言した後に、URLのコンテンツをダウンロードする。これはURLSessionオブジェクトで行うことができる。補完ハンドラが呼び出されると、WebからUIImageがダウンロードされます。

        let catPictureURL = URL(string: "http://データのurl/画像データ.jpg")!

         /*

         デフォルト設定でセッションオブジェクトを作成する。

        */

        let session = URLSession(configuration: .default)
         /*

          ダウンロードタスクを定義します。ダウンロードタスクは、
          URLの内容をデータオブジェクトとしてダウンロードし、
          そのデータで望むことを実行できます。

         */
        let downloadPicTask = session.dataTask(with: catPictureURL) { (data, response, error) in
         /*
           ダウンロードが完了しました。
         */

            if let e = error {
                print("cat pictureのダウンロード中にエラーが発生しました: \(e)")
            } else {
          /*
         エラーは見つかりませんでした。
         レスポンスがないと変わってしまいますので、それもチェックしてください。
          */
                if let res = response as? HTTPURLResponse {
                    print("レスポンスコード付きの猫の画像をダウンロード \(res.statusCode)")
                    if let imageData = data {
         /*
          最後に、そのデータをイメージに変換し、
          それを使って望むことをします。
          */

                        let imageimage = UIImage(data: imageData)
                        print(imageimage!)
                        self.templateThumbnailImageView.image = imageimage               

           /*
          あなたのイメージで何かをしてください。
           */

                    } else {
                        print("画像を取得できませんでした:画像はありません")
                    }
                } else {
                    print("何らかの理由で応答コードを取得できませんでした")
                }
            }
        }

        downloadPicTask.resume()

最後に、downloadPicTask.resume()で呼び出します。そうしないと、タスクは開始されません。このコードはすべて最初はちょっと気になるかもしれませんが、URLSession APIはブロックベースであり、非同期で動作することができます。UIスレッドを数秒間ブロックすると、OSがアプリケーションを終了します。

Pocket
LinkedIn にシェア



新規webサービスの開発の依頼ならoffテク⭐️

低コストで、Reactなどモダン言語での新規webサービス開発を承ります

-ホーム

Copyright© off , 2020 All Rights Reserved Powered by AFFINGER5.