2016-05-23 4 views
0

Я загружаю результаты поиска изображений из Интернета, но они, похоже, не анимируются правильно. Для этого я просто изменяю изображение imageView с нуля на плакат внутри вызова UIView.animateWithDuration(1.0){}. Но вместо того, чтобы оживлять, он просто появляется на месте мгновенно.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

Какой эффект вы пытаетесь достичь? Свойство 'image'' UIImageView' не является анимированным. – rmaddy

+0

Я буквально просто читал это, я чувствую себя идиотом. – QuantumHoneybees

+0

Я просто хочу, чтобы новое изображение исчезло, вместо того, чтобы просто мгновенно появляться – QuantumHoneybees

ответ

1

Вы не можете анимировать установку image имущества UIImageView. Поскольку вы хотите, чтобы изображение исчезло, анимируйте его свойство 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

Смежные вопросы