Swift

[Swift] 指定したURLの画像を表示する。

More than 1 year has passed since last update.

ググりながらコピペプログラミングしていたけど、仕様変更(?)とかで躓いたのでメモ。

まずはローカル画像表示。

ViewController.swift
// UIImageViewを作成する.
        let myImageView: UIImageView = UIImageView(frame: CGRectMake(0,0,100,120))

        // 表示する画像を設定する.
        let myImage = UIImage(named: "logo.png")

        // 画像をUIImageViewに設定する.
        myImageView.image = myImage

        // 画像の表示する座標を指定する.
        myImageView.layer.position = CGPoint(x: self.view.bounds.width/2, y: 200.0)

        // UIImageViewをViewに追加する.
        self.view.addSubview(myImageView)

https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/005-uiimageviewde-hua-xiangwo-biao-shi

難なくクリア、ここからが本番。

URLからUIImageを生成すべく

http://swift-salaryman.com/uiimage.php

こちらをコピペしてみたものの動かず…。

調べてみると、仕様変更(?)が入った模様。
* NSURL.URLWithString→NSURL(string:
* NSData.dataWithContentsOfURL→NSData(contentsOfURL:
でいけるようなので、その他なんやら修正して以下で行けた。

ViewController.swift
// URLを指定したUIImageの生成例
        let url = NSURL(string: "http://www.ex.co.jp/ex.png");
        var err: NSError?;
        var imageData :NSData = NSData(contentsOfURL: url!,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!;
        var img = UIImage(data:imageData);

        //それをselfのUIViewへ追加する場合は、
        //UIImageViewに追加してからselfへaddSubviewする
        let iv:UIImageView = UIImageView(image:img);
        iv.frame = CGRectMake(0, 0, 120, 120);
        self.view.addSubview(iv);

        // 画像の表示する座標を指定する.
        iv.layer.position = CGPoint(x: self.view.bounds.width/2, y: 200.0)