UILabel на UITableViewCell не появляется правильно

У меня есть интерфейс, формируемый, используя ограничения в интерфейсном строителе. Это настраивается как показано: http://imgur.com/a/xqa7D.

Когда клетка предоставлена, этикетка справа не появляется (но пространство для него остается): http://imgur.com/xwBSSMD.

Рассматриваемая клетка - обычай подкласс UITableViewCell:

#import 

@interface ProgressCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@property (weak, nonatomic) IBOutlet UIProgressView *progressView;
@property (weak, nonatomic) IBOutlet UILabel *detailTextLabel;

@end

На классе нет никакой дальнейшей логики.

Клетка табличного представления иллюстрируется примерами от идентификатора, который я установил на раскадровке:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ProgressCell";
    ProgressCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
                                                         forIndexPath:indexPath];

    Object *room = [self.rooms objectAtIndex:indexPath.row];
    cell.textLabel.text = room.name;
    cell.progressView.progress = 1.0f - ((float)room.avail)/room.total;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%d/%d", room.avail, room.total];

    return cell;
}

Если я установил точку останова в конце функции, и действительно <закодируйте> почтовый [[клетка detailTextLabel] текст] , текст установлен правильно. Этикетка не скрыта.

Я полностью в недоумении относительно возможной причины. Что могло вызывать это поведение?

Другие вещи я попробовал:

  • , переименовывающий собственность к чему-то другому, чем detailTextLabel (в случае возможного столкновения), не работает
  • , если я добавляю третью этикетку с текстом по умолчанию, который показывает правильно
  • , если я добавляю третью этикетку и соединяю тот выход в IB к тому, который не появляется, тогда текст по умолчанию для проблемной этикетки, появляется, но третья этикетка скрыта

Править:

Если я регистрирую окончательное положение рассматриваемой структуры, оно сидит в {{0, 44}, {0, 0}} .

2

2 ответы

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

0
добавлено
можно ли сделать весь цвет фона элементов clearcolor и подробный текст некоторый другой цвет и проверить ли, что это показывают где-нибудь?
добавлено автор Lithu T.V, источник
хорошо это говорит, что высота и ширина - ноли!!! следовательно невидимый?
добавлено автор Lithu T.V, источник
Ограничения показывают в первой связи и смотрят хорошо мне. Вы видите что-то не так с ними?
добавлено автор sapi, источник
Это оказывается этим it' s показываемый в {{0, 44}, {0, 0}}, всех мест
добавлено автор sapi, источник
Да, но как это возможно с приоритетом 1000 ограничений, запирающих его к ультраправому, и приоритетом 1000 ограничений, устанавливающих его ширину?
добавлено автор sapi, источник
Я предлагаю отключить авто расположение
добавлено автор Danny Lin, источник

Вещи можно попытаться узнать то, что происходит:

  • Помещенный красный фон на этикетку.

  • Делает NSLog со структурой этикетки и структурой contentView вашей клетки.

  • Помещенный hardcoded текст на него. cell.detailTextLabel.text = "Привет";

0
добавлено
Красный фон не обнаруживается. There' s никакое основное назначение, регистрирующее структуру, к сожалению, как it' s все еще неопределенный/0,0 (для всех взглядов) в методе создания, поскольку ограничения еще не были применены. I' ve уже попробовал hardcoded текст, напрасно:/
добавлено автор sapi, источник
I' ve пытался использовать различные имена этикетки, но напрасно (они - таможенный UILabels, хотя). Регистрация была хорошей идеей, хотя; оказывается, что UILabel предоставляется со структурой {{0, 44}, {0, 0}}. Учитывая, что у этого есть фиксированное расстояние от правого ограничения края, я don' t видят, почему это могло произойти. Какие-либо мысли?
добавлено автор sapi, источник
Да, it' s довольно странный это it' s обнаруживающийся с другой стороны представления. I' у ve никогда не было этой проблемы с авторасположением прежде. Я хочу настроить это визуально в IB (если я didn' t заботятся об этом, I' d просто производят структуры самостоятельно), таким образом, autoresizingMasks не, идут.
добавлено автор sapi, источник
добавьте - (недействительный) тест: (UITableViewCell *), клетка метод и действительно [сам performSelector: отборщик (тест:) withObject:cell afterDelay:1.0]; на вашем cellForRowAtIndex': и можно сделать регистрацию там. Пункт должен знать, ГДЕ клетка, если it' s на стороне или если it' s, где это предположило, чтобы быть всего лишь не видимым или что-то
добавлено автор Ismael, источник
Вы могли также попытаться использовать обычай UILabels вместо того, чтобы пытаться снова использовать существующее textLabel и detailTextLabel
добавлено автор Ismael, источник
I' m никакой эксперт по авторасположения , но возможно ограничения относились к нему, заставляют его держать устойчивый край направо, и ограничение к вашей точке зрения прогресса заставляет его сжаться. Вы могли попытаться использовать autoresizingMasks для этой простой клетки, they' ре, намного легче понять и работать с.
добавлено автор Ismael, источник
Кроме того, что-то странное, которое я заметил, пункт {0, 44}, является на самом деле слева большей частью стороны, и только за пределами вашего cell' s пространство. Довольно странный, если вы спрашиваете меня..., но побеждаете меня не имея возможности проверить его самого
добавлено автор Ismael, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.