Swift

Swift:NSImageViewに写真を表示する

広告の代わりに写真を表示するようにしました。

これまでWebViewにURLを表示するようにしていたのですが、写真を枠内に収めるには、元々の画像を縮小しておくか、プログラムで縮小しないといけないことがわかりました。

それでNSImageViewを使うことにしたのですが、表示の仕方がわかりませんでした。調べていったら、ファイルから表示する方法とURLから表示する方法があることがわかりました。

基本的には3行ですみます。この場合、写真のURLが入っている配列mcAdArrayからURLを取り出し、NSURLに変換します。それからcontentsOfURL:でURLを読み込みます。

@IBOutlet var xbImage:NSImageView

var wurl    = mcAdArray[mcAdInx]
var imageURL: NSURL = NSURL.URLWithString(wurl)
xbImage.image = NSImage(contentsOfURL:imageURL)

ファイルパスの場合、xbImage.image = NSImage(contentsOfFile: filepath)のようにNSURLの代わりにファイルパスを指定して読み込みます。

NSImageViewは該当するエリアに自動的に写真をfitしてくれます。Document Builderのatributes inspectorで表示位置(揃え)を指定しておけば、何もしなくてすみます。右上の写真(サムネール)がそうです。

追記:写真の読み込みはブログからしているのですが、意外に時間がかかるので、いったん溜め込んだものをImage Viewに入れるように変更しました。

スクリーンショット 2014-09-27 20.39.08

Categories: Swift, 技術