2014-02-15 123 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)不是通過子視圖搜索,而是使用'[UIView -viewWithTag:]'來獲得該視圖。 (3)如果您要刪除超級視圖(UILabel),則不需要刪除其子視圖。 –

+0

我用另一種方法設置標籤。我無法刪除添加到數組中的視圖 – Dimitrio

+0

'NSLog(@「targetTag:%d,subviewTags:%@」,label.tag,[array valueForKey:@「tag」])的結果是什麼?目標標籤是否實際包含在子視圖標籤中? –

回答

0

試試這個,

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

您應該在伊娃或財產中存儲對此「unkillable」視圖的引用。在第一個方法中初始化它,然後在第二個方法中調用removeFromSupperView。

+0

但我做了類似的把它放在數組中 – Dimitrio

相關問題