2014-09-29 5 views
0

У меня есть TableView с сообщениями. Таблица должна вычислять высоту для ячеек, и она корректно работает в моем симуляторе (iPhone 5S), но в реальном устройстве (также 5S) он вычисляет только те, которые загружено в приложение, и никогда не пересчитывает их снова. Поэтому у меня есть мои сообщения, отображаемые с неправильной высотой. В чем может быть проблема?heightForRowAtIndexPath не всегда вызывается на реальном устройстве

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    VKPost* currentPost = _posts[indexPath.row]; 
    return [VKPostCell actualHeightForCellWithPost:currentPost]; 
} 

обновление: это, кажется, не работает только на устройствах с прошивкой ниже, чем 8.

+0

Было ли устройство и симулятор работать с той же версией iOS? Попробуйте удалить приложение на устройстве и запустить «Очистить на Xcode». – Alak

+0

Пробовал это много раз, без изменений. Версия устройства - 7, симулятор - 8. Было бы так глупо, если бы это была проблема. * Начиная с загрузки 7-симулятора версии * –

+0

Вы говорите, что 'heightForRowAtIndexPath' вообще не звонит? на устройстве –

ответ

0

Вы извлечения данных для _posts из веб-сервиса или в любом месте? _posts может быть пустым при вызове heightForRow. Попробуйте поместить блок завершения в получить данные для _posts метод, а когда он будет завершен, позвоните по телефону [self.tableView reloadData];.

+0

Да Я извлекаю данные из веб-службы. И я думаю, что у меня есть вызов. (Извините, что код изначально не был моим) '- (void) loaderDidFinishedloading: (NSArray *) posts { [_posts addObjectsFromArray: posts]; [_tableView reloadData]; } ' btw Я узнал, что он работает неправильно только в ios7, в ios8 он работает правильно. –

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