2012-05-14 1 views
3

У меня есть UITableView с именем «TaskTable», и я добавить метку в contentview каждой ячейке TaskTable в этом методеНе удается удалить ярлык из UITableViewCell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

Мой маркирующие 50 и я Я использую встроенную ячейку таблицы для этой нестандартной ячейки.

теперь, когда я пытаюсь удалить свою этикетку от TaskTable с помощью этого кода:

for(UILabel *lbl in [cell subviews]) 
    { 
     if(lbl.tag == 50) 
     { 
      [lbl removeFromSuperview]; 
     } 

    } 

Код не входя в этом случае условие. Почему он не находит ярлык? Это происходит потому, что я использую встроенную ячейку, которая только находит свой собственный текстовый ярлык, или есть какая-то другая проблема, которую я пропускаю?

+0

Что такое код в 'cellForRowAtIndexPath:'? –

+0

Я передаю имя задачи на lable текст ячейки. – KDeogharkar

+0

после удаления UILabel, вы должны перезагрузить таблицу, если вы создадите снова ярлык в cellForRowAtIndexPath, тогда снова создайте ярлык – Deepesh

ответ

6

Вы сказали, что добавляете его в контентный вид своей камеры. Однако приведенный выше код проходит через подвыборы вашей ячейки - это только один уровень глубины, поэтому он вернет представление содержимого, но не подвид вашего представления содержимого.

for(UILabel *lbl in [cell.contentView subviews]) 
    { 
     if(lbl.tag == 50) 
     { 
      [lbl removeFromSuperview]; 
     } 

    } 

Должен работать, но действительно пользовательский подкласс класса с меткой как свойство будет лучше.

+0

благодарит приятелей много благодарностей :) – KDeogharkar

+0

да это действительно работает очень красиво –