2016-06-10 3 views
1

У меня есть тонна ярлыков & Веб-представления в ячейке, которую я хочу скрыть, когда пользователь находится в портретном режиме. Я пробовал следующее:Доступ ко всем объектам UILabel в ячейке tableView

for subview in cell.subviews { 

       print("i am a subview") 
       if let label = subview as? UILabel { 

        label.hidden = true 
       } 
      } 

Я получаю три подпункта, но это не UILabels. В общем, у меня есть> 10 ярлыков, поэтому этот код не работает. Любые подсказки о том, как получить доступ к этим ярлыкам в цикле? Спасибо ...

ответ

1

Вы получаете доступ к подзаголовкам UITableViewCell, но вам нужно получить подзаголовки содержимогоView UITableViewCell.

For Example: cell.subviews[0].subviews сделаю.

+0

Наконец-то! Спасибо ... Сделал мой день. – Burkart

+0

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

+0

Первое подзадача всегда будет содержаться в представлении UITableViewCell –

0

Для себя я решил такую ​​же проблему, объявив свойство labelsArray: [UILabel] в ячейке и добавляя указатели для маркировки при создании этого массива.

Другой способ - с использованием тегов. Поскольку установка одного и того же тега на разные виды - это плохое кодирование стиля, вы можете предоставить некоторые формулы: например, предположим, что ваши метки будут иметь теги 1000, 1001, 1002 .... Затем вы можете перечислить все метки по циклу, получив представление с тегом от 1000 до тех пор, пока вы не получите nil

+0

Вы также можете использовать коллекцию розетки для этого – Wain

+0

@Wain, если вы используете xib/раскадровки, да. –

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