У меня есть UITableViewController с 2 ячейками прототипа с пользовательскими высотами - один имеет высоту 187 точек, а другой имеет высоту 140 точек. Высота строки по умолчанию В Tableview является ГЭЭ 187.XCode 6 issue - dequeueReusableCellWithIdentifier не возвращает пользовательскую высоту ячейки
Мой cellForRowAtIndexPath выглядит следующим образом:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
MyListingCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyListingCell"];
[cell initWithListing:[self.listings objectAtIndex:indexPath.row]];
return cell;
} else {
return [tableView dequeueReusableCellWithIdentifier:@"AddMyListingCell"];
}
}
и у меня есть соответствующий heightForRowAtIndexPath который выглядит следующим образом:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyListingCell"];
return cell.frame.size.height;
} else {
//if no listings exist, make the cell full-screen height
if (self.listings.count == 0) {
return tableView.frame.size.height;
} else {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AddMyListingCell"];
return cell.frame.size.height;
}
}
}
Когда я запускаю код , высота ячеек получается правильно. 187 и 140 соответственно.
Однако, я хотел бы изменить размер ячейки более 213 точек. Для этого я меняю пользовательскую высоту таблицы на 213. Проблема в том, что когда я запускаю код (используя XCode 6), ячейки таблицы по-прежнему выходят как высота 187.
Я попытался изменить свойство tableview rowheight по умолчанию, также до 213. Однако я все еще получаю 187. На самом деле, когда я смотрю на раскадровку (как текст), нигде не упоминается нигде. Но похоже, что XCode запоминает предыдущее значение.
Я пробовал очистить, глубоко очистить, перезагрузить xcode, удалить приложение с моего телефона и удалить мои продукты отладки. Я не могу забыть его 187.
Может ли это быть ошибкой в XCode 6? В XCode 5 этого не бывает (доказано). Пользовательские высоты ящиков отлично работают в XCode 5, но эта проблема возникла на следующий день после установки XCode 6.
Может ли кто-нибудь помочь с советами по вещам, чтобы попытаться или подтвердить, что я не схожу с ума.
Это выглядит как проблема, связанная с тем, как сделаны ячейки и их высоты, а не Xcode. Если я правильно помню, heightForRowAtIndexPath вызывается до того, как ячейка создана, а не после. – Mike
@ theDuncs - Любопытно, если вам посчастливилось решить эту проблему? Я считаю, что столкнулся с одним и тем же - я пытаюсь использовать две ячейки прототипа в UITableView, каждый с другой высотой строки.Сначала я просмотрел метод heightForRowAtIndexPath: но не имел никакого успеха в использовании этого с iOS8. Вам удалось найти способ выполнить это, используя высоту строки таблицы раскадровки стола? Благодаря! –
@DerekLee Я подал радар с Apple, и они сказали, что это была проблема, о которой уже сообщалось. Я еще не нашел другого обходного пути, кроме как скопировать UITableViewCell из раскадровки pre XCode6, вставить его и изменить три параметра размера в XML-файле раскадровки. Дайте мне знать, если вы хотите, чтобы я опубликовал это как возможное обходное решение. – theDuncs