2014-02-16 71 views
2

我使用自定義單元格動態創建tableView。 CustomCell的.h文件看起來像這樣:自定義TableView單元格中的標籤在滾動後消失

@property (strong, nonatomic) IBOutlet UILabel *uslugaName; //I set retain doesn't work too 
@property (strong, nonatomic) IBOutlet UILabel *howMuchPayLbl; 

我CellForRowAtIndexPathMethod:

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

    static NSString * cellIdentifier = @"Cell"; 

    myCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 


    /* 
    if (!cell) 
     cell = [[myCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    */ 

    if (indexPath.row !=15) { 

    cell.uslugaName.text =serviceNameArr[indexPath.row]; 

    //окрашиваем ячейку в зависимости от активности услуги 
    if ([uslugaIsActiveArr[indexPath.row] isEqual: @"1"]) { 
     cell.backgroundColor = [UIColor blackColor]; 
     cell.howMuchPayLbl.enabled = YES; 
    } 
    else { 
     cell.backgroundColor = [UIColor grayColor]; 
     cell.howMuchPayLbl.enabled = NO; 
    } 

    if (![amountTmpArr[indexPath.row] isEqual: @"0"]) 
     cell.howMuchPayLbl.text = [NSString stringWithFormat:@"Оплачиваю: %@ KZT", amountTmpArr[indexPath.row]]; 
} 
    else { 
     cell.uslugaName.font = [UIFont fontWithName:@"System Bold" size:16]; 
     cell.uslugaName.text = [NSString stringWithFormat:@"ОБЩАЯ СУММА ОПЛАТЫ: %@", fullAmount]; 
     cell.howMuchPayLbl.hidden = YES; 
    } 

    return cell; 
} 

我想要的最後一行比其他人不同的(用於此目的的:

如果(indexPath.row != 15)

)。問題是 - 當滾動cell.howMuchPayLb消失。如果刪除最後一行的特殊代碼 - 一切正常,爲什麼會發生這種情況?

回答

8

您的代碼有一個if else聲明,其中一個分支可以設置cell.howMuchPayLbl.hidden = YES;但另一個分支未設置cell.howMuchPayLbl.hidden = NO;。所以,一旦標籤被隱藏,它永遠不會被隱藏。當具有隱藏標籤的單元格被重新使用時,標籤保持隱藏狀態。

添加cell.howMuchPayLbl.hidden = NO;(以及所需的任何其他「逆」配置)到您的if聲明。

+0

奇怪,但爲我工作。 – Muju

0

推薦本link會幫助你,因爲dequeueReusableCellWithIdentifier的.. 它不能識別細胞identifire具有相同name.So可以使用獨特的細胞identifire像小區1,小區2 ......對每一行..

相關問題