こんにちは。エクセルソフトの田淵です。
Xamarin.iOS をいじっていて、UITableView
に独自のセルを作る方法を調べていたところ、UIImageView
の UIImage Image
プロパティに URL で引っ張ってきた画像を指定する方法でちょっとハマったのでメモとして残しておきます。
この、Xamarin Dev Days で作るアプリの Xamarin.iOS 版を作っています。Azure まで実装するかは検討中w
今回は、これの画像部分をどう指定したか?というお話です。
UITableView のカスタムセルを作る話は追って別のエントリーで書きたいと思います。
UIImage の FromXXX メソッド
UIImage
には、From〜〜 というメソッドが幾つか用意されています。
FromBudle (string name)
Bundle から引っ張ってきます。FromFile (string filename)
ファイル名を指定して引っ張ってきます。FromImage (CGImage image)
CGImage
、CIImage
から引っ張ってきます。FromResource (Assembly assembly, string name)
Resourceアセンブリから引っ張ってきます。LoadFromData (NSData data)
データから引っ張ってきます。
ただし、Xamarin.Forms にはありましたが、iOS には FromUrl (string path)
が無いようです。
調べていたら、こちらに情報がありました。
以下のような imageUrl
を引数に実行すると UIImage を返してくれるメソッドを用意して、
private async Task<UIImage> LoadImage(string imageUrl) { using (var client = new HttpClient()) { // imageUrlからバイト配列を取得します。 byte[] contents = await client.GetByteArrayAsync(imageUrl); // バイト配列のデータからUIImageを生成します。 return UIImage.LoadFromData(NSData.FromArray(contents)); } }
UITableViewSource
に再度流し込んで、TableView を ReloadData()
で再読込すれば OK です。
var src = CustomTableView.Source as CustomTableViewSource; src.Items.Clear(); foreach (var x in tableItems) { src.Items.Add(x); } CustomTableView.ReloadData();
一応アップしましたが、「XiOS_App01」とかになっているので、ソリューション名とかちゃんとして再度アップし直します。すみません。 多分合っていると思いますが、識者の方ツッコミお待ちしています。
Xamarin 気になった方は
是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)
有償セミナー、トレーニング | Xamarin : XLsoft エクセルソフト
Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。
私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)、Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。
以上です。