2016-05-23 9 views
0

ウェブから画像検索結果を読み込んでいますが、正しくアニメーション化されていないようです。そうするために、私はUIView.animateWithDuration(1.0){}コールの中でimageViewのイメージをnilからポスターに変更します。しかし、アニメーション化するのではなく、ただちにポップアップします。ここでUIView animateWithDurationはアニメーション化されず、ロードされるだけです

はコードです:

//Poster 
//Set the poster first as blank 
cell.poster.image = nil 
//If I'm provided with a poster path, load an image. 
if let imagePath = matchingItems[indexPath.row]["poster_path"] as? String { 
    //Sessions and Stuff for request 
    let url = NSURL(string: "http://i.imgur.com/b3DKTX2.png") 
    let urlRequest = NSURLRequest(URL: url!) 
    let session = NSURLSession.sharedSession() 

    //Asynchronous Request: 
    let dataTask = session.dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) -> Void in 
     if let poster = UIImage(data: data!) { 
      dispatch_async(dispatch_get_main_queue()) { 
       //Animate the poster in 
       UIView.animateWithDuration(1.0) { 
        cell.poster.image = poster 
       } 
      } 
     } 
    }) 

    dataTask.resume() 
} else { 
    //Just use placeholder if no image exists 
    cell.poster.image = UIImage(named: "Placeholder.jpg") 
} 
+2

どのような影響を達成しようとしていますか? 'UIImageView'の' image'プロパティはアニメーション化できません。 – rmaddy

+0

私は文字通りそれを読んで、私はばかみたいです。 – QuantumHoneybees

+0

ただ瞬時にポップするのではなく、新しい画像をフェードインしたいだけです。 – QuantumHoneybees

答えて

1

あなたはUIImageViewimageプロパティの設定をアニメーション化することはできません。画像をフェードインさせたいので、alphaプロパティをアニメーションします。

このような何か:

cell.poster.alpha = 0.0 // hide it 
cell.poster.image = poster // set it 
UIView.animateWithDuration(1.0) { 
    cell.poster.alpha = 1.0 // fade it in 
} 
+0

うわー、それは完璧に動作します、ありがとう! – QuantumHoneybees

関連する問題