2015-08-28 4 views
0

После обновления до последней версии XCode 7 beta 5 мое приложение ведет себя очень странно. После запуска я получил это:ios 9 UITableView ghost пустые ячейки

empty cell bug

После нескольких обновлений страницы:

empty cell bug

И снова после нескольких обновлений раздел пошел нормально (но ошибки в других разделах):

enter image description here

Все время в отладчике все s eems быть хорошим: все данные загружаются с сервера и отправляются в таблицу ...

Есть ли у кого-нибудь идеи, почему это происходит?

Код:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell:EventCell = self.contentWindow.dequeueReusableCellWithIdentifier("evcell")! as! EventCell 

    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "HH:mm" 
    var index = 0; 
    for date in keysSet { 

     if (index==indexPath.section) 
     { 
      cell.timeLabel.text = dateFormatter.stringFromDate(datesOfEvents[date]![indexPath.row].time) 
      cell.nameLabel.text = datesOfEvents[date]![indexPath.row].title 
      print(index) 
      print(cell.nameLabel.text) 
      if datesOfEvents[date]![indexPath.row].state == MessageState.SENT { 
       cell.nameLabel.textColor = UIColor.blackColor() 
      } 
      else { 
       let currentDate = NSDate() 
       if datesOfEvents[date]![indexPath.row].time > currentDate { 
        cell.nameLabel.textColor = UIColor.blueColor() 
       } 
       else 
       { 
        cell.nameLabel.textColor = UIColor.redColor() 
       } 
      } 
      break; 
     } 
     index++ 

    } 
    //cell.backgroundColor = UIColor(colorLiteralRed: 39, green: 185, blue: 200, alpha: 0) 
    //cell.textLabel?.textColor = UIColor(colorLiteralRed: 255, green: 255, blue: 255, alpha: 1) 
    cell.textLabel?.numberOfLines = 0; 

    return cell 
} 
+0

Попробуйте использовать 'dequeReusableCellWithIdentifier: forIndexPath', а не версии, которую вы используете. Для повторного использования ячеек вы должны использовать версию forIndexPath. Это может быть или не быть частью вашей проблемы. В текущих версиях ячейки, возвращаемые с использованием используемой версии, не имеют класса размера и клеток, использующего версию forIndexPath. Легкое изменение, чтобы попробовать сначала. –

+0

Это очень необычный код. Почему существует цикл? – danh

+0

Вместо цикла и если 'keysSet' является NSSet, просто используйте' keysSet.allObjects as Array 'и получите дату в index' indexPath.section'? Очень странно, что вы делаете что-то! –

ответ

0

Я также имел эту проблему в прошивкой 9.1. Если вы разрабатываете только одно семейство устройств для раскадровки, попробуйте снять флажок «Использовать классы размера» в инспекторе файлов раскадровки. Он решил это для меня.

enter image description here