2014-02-15 2 views
0

У меня возникли проблемы с удалением вида из супервизора. Добавление вид:UIView не удаляется из супервизора

- (void)createCircles 
{ 
    NSString *currentDate = [self currentDate]; 
    NSArray *array = [self.horizontalScroll subviews]; 
    UILabel *label = nil; 
    for (label in array) 
    { 
     if ([label.text isEqualToString:currentDate]) 
     { 
      UIView *view = [[UIView alloc] initWithFrame:label.frame]; 
      view.backgroundColor = [UIColor redColor]; 
      [self.horizontalScroll insertSubview:view atIndex:0]; 
      [self.labelsArray insertObject:view atIndex:0]; 
     } 
    } 
} 

Попытка удалить:

- (void)labelTouch:(UITapGestureRecognizer*)sender 
{ 
    NSArray *array = [self.horizontalScroll subviews]; 
    UILabel *label = (UILabel*)sender.view; 
    for (int i = 0; i < [array count]; ++i) 
    { 
     UILabel *l = array[i]; 
     if (label.tag == l.tag) 
     { 
      UIView *view = nil; 
      view = [self.labelsArray objectAtIndex:0]; 
      view.hidden = YES; 
      [view removeFromSuperview]; 
      view = nil; 
      [self.labelsArray removeObjectAtIndex:0]; 
     } 
    } 
} 

Но после зрения сенсорного еще отображения. Пробовал удалить этикетку (l) - удаляется

+0

(1), похоже, что вы ищете 'tag', но я не вижу, где вы устанавливаете его. (2) Вместо поиска через subviews вы можете просто использовать '[UIView -viewWithTag:]' для получения этого представления. (3) Если вы удаляете супервизор (UILabel), вам не нужно удалять его просмотры. –

+0

Я устанавливаю тэг другим способом. Я не могу удалить представление, которое добавлено в массив – Dimitrio

+0

. Что является результатом 'NSLog (@" targetTag:% d, subviewTags:% @ ", label.tag, [array valueForKey: @" tag "]);'? Является ли целевой тег фактически содержащимся в тегах subview? –

ответ

0

Попробуйте это,

[[[self.horizontalScroll subviews] objectAtIndex:0] removeFromSuperView]; 
0

Вы должны сохранить ссылку на этот «неудобный» вид в ivar или property. Инициализируйте его в первом методе и вызовите removeFromSupperView во втором.

+0

Но я делал подобное с помещением в массив – Dimitrio

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