2012-02-27 3 views
1

Если мы воспользуемся следующим кодом, я смогу удалить все подзаголовки, включая textLabel. Мне нужно удалить все, кроме contentview titlelabelудалите все subview на cell.contentview, кроме метки

for (int i=0; i < [self.mylist count]; i++) { 

    NSIndexPath *lIndexPath = [NSIndexPath indexPathForRow:i inSection:0]; 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:lIndexPath]; 

    for (UIView *view in cell.contentView.subviews) { 
     [view removeFromSuperview]; 
    } 
} 

любая идея, как избежать этого

ответ

6

Просто проверить, является ли точка зрения типа UILabel, вот это

for (int i=0; i < [self.mylist count]; i++) { 

    NSIndexPath *lIndexPath = [NSIndexPath indexPathForRow:i inSection:0]; 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:lIndexPath]; 



    for (UIView *view in cell.contentView.subviews) { 
     if(![view isKindOfClass:[UILabel class]]) 
     { 
     [view removeFromSuperview]; 
     } 
     else 
     { 
     //check if it titlelabel or not, if not remove it 
     } 
} 
} 
+0

А что, если удалена метка имеет ограничения прилагаются? Например, я хочу удалить среднюю метку, но под ней есть вертикальное ограничение для удаленной. Тогда вторая метка не заполнит пространство удаленной метки. Как это исправить? – Slavcho

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