iPhoneアプリをxcodeで作成しています。
画像とタイトルを一覧表示し、一覧をクリックすると詳細ページに遷移して画像・タイトル・説明を表示しようとしています。
一覧ページも詳細ページも同じ画像を使用するため、swiftのSDWebImageを使うことにしました。
以下のサイトを参考にし、2つのパターンで画像を取得する方法を試しました。
http://blog.ch3cooh.jp/entry/20160115/1452819720
swift
1let url = NSURL(string: "http://example.com/hogehoge.jpg")! 2self.thumbnailView.sd_setImageWithURL(url, placeholderImage: nil) { (image, error, cacheType, u) -> Void in})
swift
1let url = NSURL(string: "http://example.com/hogehoge.jpg")! 2SDWebImageManager.sharedManager().downloadImageWithURL(url, 3 options: .CacheMemoryOnly, progress: nil) { [weak self] (image, error, cacheType, isDownloaded, u) -> Void in 4 // ダウンロードが完了後に加工してImageViewに設定する 5 self?.imageView.image = image.effectImage() 6}
しかし、どちらのパターンでも同じ現象だったのですが、
アプリ起動直後に表示した一覧では画像が表示されませんでした。
一覧クリックで遷移した詳細ページには画像は表示されます。
一旦アプリを終了し、再度起動した時には一覧にも画像は表示されました。
キャッシュだから2回目以降の表示は問題ないのかと思いますが、
1回目でも画像を表示するにはどうすればいいのでしょうか?
「SDWebImage」で検索しても初回は別の方法で表示しなければいけない等は見つけられませんでした。
よろしくお願いします。
以下の箇所で実行しています。
swift
1class XXXXList: UIViewController, UITableViewDelegate, UITableViewDataSource { 2 override func viewDidLoad() { 3 super.viewDidLoad() 4 ((省略)) 5 } 6 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 7 // 再利用するCellを取得する. 8 let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) 9 10 cell.textLabel!.text = "表示するタイトル" 11 12 let url:NSURL = NSURL(string: "画像のurl")! 13 cell.imageView!.sd_setImageWithURL(url) 14 15 return cell 16 } 17}
回答2件
あなたの回答
tips
プレビュー