2014-02-20 7 views
2

Кто-нибудь знает, как установить панель просмотра прогресса для PFImageView, которая загружает PFFile из (Parse.com)? Я не могу найти учебники о том, как это сделать. (Я не хочу устанавливать индикатор активности, так как я загружаю изображение, и я хочу, чтобы пользователь знал, как долго он/она будет ждать).Как показать ход загрузки PFFile внутри PFImageView

Спасибо!

ответ

5

Методы PFImageView довольно ограничены, вы можете просто использовать loadInBackground с блоком завершения или без него. Ни в одном из этих методов недоступен progressBlock.

Обходным путем было бы не назначать PFFile для PFImageView, а вместо этого загружать его с использованием параметра progressBlock.

[myImageFile getDataInBackgroundWithBlock:^(NSData * result, NSError *error) 
{ 
    if (result != nil && error == nil) 
    { 
      [myImageView setImage:[UIImage imageWithData:result]]; 
    } 
    else 
    { 
      // handle the error 
    } 
} 
progressBlock:^(int percentDone) 
{ 
    [progressView setProgress:(float)percentDone/100.0f]; 
}]; 

Это не так просто, как [myPFImageView loadInBackground], но я не вижу какой-либо другой способ, чтобы получить индикатор прогресса. Обратите внимание, что использование PFImageView в этом случае больше не требуется, достаточно простого UIImageView. Возможно, однажды команда Parse добавит progressBlock к своим методам PFFile!

+0

Благодарю вас так много для вас время! Я очень ценю это! – adriennemhenry

+0

Добро пожаловать! Мне потребовалось немного времени, чтобы привыкнуть к SDK Parse iOS, теперь я стараюсь помогать людям здесь, когда могу. –

+0

Это очень приятно, спасибо! – adriennemhenry

0

Мое решение: Показать загрузчик.
В качестве расширения PFImageView использовать следующий код, чтобы показать грузчиком

let loader = UIActivityIndicatorView(frame: CGRectMake(self.frame.width/2 - 5, self.frame.height/2 - 5, 10, 10)) 
     loader.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray 
     loader.startAnimating() 
     self.addSubview(loader) 
loadInBackground{(image: UIImage?, error: NSError?) -> Void in 
       loader.stopAnimating() 
       if error == nil { 
       self.image = image 
       } 
      }