2015-04-14 2 views
1

Я работаю с PFQueryTableViewController и настраиваю его, чтобы найти только дружеские отношения для этого пользователя, который был одобрен или отправлен ему.Невозможно загрузить изображение из PARSE в образ изображения изображения PFTableViewCell

«fromUser» и «toUser» являются указателями на класс пользователя, где мне нужно имя пользователя и profilePicture для каждого из пользователей, содержащихся в результатах запросов.

Сейчас я стараюсь принести те, в моем методе cellForRowAtIndexPath и загрузить изображение:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? { 


    let cellIdentifier = "contactCell" 

    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as! PFTableViewCell 

    if let user = object?["fromUser"] as? PFUser { 

     user.fetchInBackgroundWithBlock({ (user, error) -> Void in 

      if error != nil { 

       println("Could not fetch user object") 
      } 

      let user = user as! PFUser 
      cell.textLabel?.text = user.username! 
      cell.imageView?.file = user["profilePicture"] as? PFFile 
      cell.imageView?.loadInBackground() 
     }) 



    } } 

Getting имя пользователя для отображения в Tableview работает нормально, но изображение не на самом деле никогда не загружен. Я попробовал разные подходы, чтобы загрузить изображение, но свойство imageView моей ячейки всегда равно нулю.

  • класс прототипа установлен в PFTableViewCell
  • Контроллер связан с видом на раскадровке

Пожалуйста, дайте мне знать, если вы, ребята, есть какие-либо идеи, почему это встроенное в собственности равно нуль и как это исправить.

Спасибо,

ответ

0

Ну я нашел обходной путь, который на самом деле работает довольно хорошо:

  1. Создать ячейку прототип в вашем TableView (раскадровки) и установить его класс к нормальному «UITableViewCell»
  2. Задайте для свойства reuseIdentifier этой ячейки значение по вашему желанию
  3. Позвольте собственнику файла вашей пользовательской ячейки (я создал файл nib для этой ячейки) быть подклассом PFTableViewCell
  4. Создание пользовательских точек для TextLabel и ImageView
  5. Регистрация что Nib для reuseIdentifier, установленного в шаге 2 в вашем TableViewController
  6. Наконец, использовать этот класс в методе cellForRowAtIndexPath так:

    пусть клетка: PeopleTableViewCell ! = tableView.dequeueReusableCellWithIdentifier ("peopleCell") как? PeopleTableViewCell

Я надеюсь, что это также устранит ваши проблемы.

С уважением,

[Edit]: Похоже, что так не нравится мой фрагмент кода для форматирования. Он встроен в теги кода.

0

PFTableViewCell не работает со стандартными стилями. Поэтому вы должны сделать свою ячейку пользовательской ячейкой.

Они вновь шаги, которые я взял, чтобы сделать его работу (в раскадровке):

  • подкласс PFTableViewCell с вами собственным классом
  • в раскадровке, настроить ячейку прототипа с использованием пользовательских клетки
  • перетащите UIImageView из палитры, но затем установите его класс как PFImageView
  • подключите его к IBOutlet в подклассе PFQueryTableViewController
  • реализовать cellForRowAtIndexPath: в PFQueryTableViewController вы сделали (ваш код был в порядке).

Этот способ работал для меня.

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