開発

【swift】ちょい足しレシピ⑥!非同期通信で画像を取得し表示させるUIImageViewを作ってみる

どうもこんにちは。iOSをメインに開発しているロッキーカナイです。

今日はUIImageViewを継承して、非同期通信で画像を取得し表示してみたいと思います。テーブルセルなんかでよくある、クルクルしてから画像を表示するアレです。といってもAlamofireやAFNetworkingなんかのライブラリを使って簡単に実装できるのですが、標準フレームワークで作ってみたので紹介します。

コード

 

呼び出し

 

取得urlがhttpsであればよいのですが、httpで始まるurlの場合はinfo.plistにhttpを使う旨の登録が必要です。


App Transport Security Settings – Dictionary
Allow Arbitrary Loads – Boolean – YES

 

解説

組み込みたかった動作としては3点です。

  1. 通信中はインジケータ(クルクル)を表示させる
  2. 非同期通信する
  3. 通信エラー時は分かり易いようにエラー画像を表示させる

今回画像を非同期取得をする必要があったので、UIImageViewクラスを継承させて、そこに非同期通信させる制御を追加しました。

 

サンプル動画

取得成功時の動画です。

エラー時です。

 

おわり

非同期で取得というと、なんだか難しく感じるかもしれませんが、このように簡単に出来ました。今日のちょい足しは「非同期通信で画像を取得し表示させるUIImageViewを作ってみる」でした。

ABOUT ME
ロッキーカナイ
ロッキーカナイ
iOSをメインに、SwiftやObjective-C言語の開発をしてます。趣味は猫と戯れる事、PHPを使ったサイト作成やAndroidの開発もしております。ちなみに名前のロッキーカナイはよく昼飯を食べる所w