У меня есть UITableView
с простой UITableViewCell
, высота которой установлена в методе tableView: heightForRowAtIndexPath:
. Я использую этот метод в 5 приложениях, и он работает каждый раз отлично, но теперь у меня есть некоторые проблемы с ним, когда я его использую, моя ячейка не обнаруживает краны.UITableViewCell не обнаруживает ответвление, когда я использую heightForRowAtIndexPath: метод
Как я выяснил, он отлично работает в проектах, которые я создал в Xcode 6, но он не работает в проекте, который я создал в Xcode 7. У кого-нибудь есть идея, что может вызвать эту проблему? Что-то изменилось с помощью метода tableView: heightForRowAtIndexPath:
? Это действительно раздражает, потому что я понятия не имею, он отлично работает в моих других приложениях (проект, созданный с помощью Xcode6), но он не хочет работать в моем недавно созданном проекте Xcode 7. Когда я удаляю его, ячейка начинает обнаруживать ответвление снова, когда я добавляю его, я не могу даже выписать NSLog
в didSelectRowAtIndexPath:
для ответвлений.
Я был бы очень признателен, если бы кто-нибудь мог дать мне несколько советов, что делать. Может быть, это просто что-то основное, что мне нужно включить в IB, но не мог понять.
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath {
if(!self.itemCell) {
self.itemCell = [self.tableView dequeueReusableCellWithIdentifier:@"cell"];
}
NSString *object = [self.stringArray objectAtIndex:indexPath.row];
self.itemCell.itemTitle.text = object;
[self.itemCell layoutIfNeeded];
CGFloat height = [self.itemCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
return height+5;
}
(я также попытался cell.userInteractionEnabled = YES;
без какого-либо успеха.)
Никогда не называйте 'dequeueReusableCellWithIndentifier' внутри' метода heightForRowAtIndexPath'. Это может привести к сбоям, вызванным бесконечной рекурсией. – rmaddy
@rmaddy, что мне делать в качестве альтернативы? Он отлично работает в нескольких приложениях. – rihe
Вероятно, это работает, потому что вы сохраняете результат в ivar, что означает, что он будет работать только в том случае, если в вашем представлении таблицы есть одна строка. – rmaddy