2016-10-18 74 views
-1

我有多個uilabels值。 當我點擊按鈕NEXT時,我需要清空UILabels self.lbl_title。空的多個UILabel值

我該怎麼做?

self.lbl_title.hidden=true在這種情況下不起作用。

-(void)fetchdata 
{ 

    int y=10; 
    if(arrayquestion.count!=0){ 
    for (int i=0;i<arrayquestion.count;i++) 
    { 
     CGSize textsize = [[[arrayquestion objectAtIndex:i] valueForKey:@"question_title"] sizeWithFont:[UIFont systemFontOfSize:18] constrainedToSize:CGSizeMake(850, MAXFLOAT) lineBreakMode:NSLineBreakByCharWrapping]; 

     self.lbl_title=[[UILabel alloc] init]; 
     self.lbl_title.frame= CGRectMake(60,y-3,900,textsize.height+5); 
     self.lbl_title.text=[[arrayquestion objectAtIndex:i] valueForKey:@"question_title"]; 
     self.lbl_title.backgroundColor=[UIColor clearColor]; 
     self.lbl_title.numberOfLines=0; 
     self.lbl_title.font=[UIFont systemFontOfSize:18]; 
     y=y+textsize.height+30; 

     [self.scrll_vw addSubview:self.lbl_title]; 

    } 

    } 
    else{ 
     NSLog(@"%s","Yes"); 
     self.lbl_title.hidden = YES; 

    } 
} 

-(IBAction)Next:(id)sender 
{ 
    [arrayquestion removeAllObjects]; 
     [self fetchdata]; 
} 
+0

你想設置標籤文本爲空嗎? self.lbl_title.text = @「」; –

+0

我檢查你的代碼。我發現你沒有初始化self.lbl_title。沒有初始化,你沒有隱藏標籤。我認爲這樣的事情發生了 – Wos

+1

每次調用fetchdata時,都會創建10個新標籤,並依次將每個標籤分配給'self.lbl_title'。在循環結束時,您只有對第10個標籤的引用。將它們全部添加到數組中。 –

回答

1

如果您只想清除標籤文本,你可以使用

self.lbl_title.text = @""; 
+0

我也試過這個。它只是空的最後一個值。 @ olga-nesterenko – diksha

+0

它可能會更好地存儲在您的財產不是標籤本身,而是您添加在循環中的標籤數組。所以,當你需要清除它們時,你只需迭代你的數組。 –

0

您可以通過滾動視圖內的所有子視圖循環,找到標籤和清空或隱藏。喜歡的東西:

[self.view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 

    //if you have only one label use the following: 
    if ([obj isKindOfClass:[UILabel class]]){ 
     [obj setHidden:YES] 
    } 
    }]; 

或者,如果您有多個UILabels,您可以指定特定的標籤像100和使用標籤值:

[self.view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 

     //if you have only one label use the following: 
     if (obj.tag == 100){ 
      [obj setHidden:YES] 
     } 
    }]; 
1

你可以用重裝scrollview也嘗試,因爲你需要清除的UILable

老refrence刪除舊UILable然後打電話給你的方法:[self fetchdata] 它會工作挑釁

-(IBAction)next:(id)sender 
{ 
for (UILabel *view in self.contentView.subviews) 
    { 
     if (![UILabel isKindOfClass:[UIImageView class]]) 
      [UILabel removeFromSuperview]; 
    } 
    [arrayquestion removeAllObjects]; 
     [self fetchdata]; 
}