2012-08-13 197 views
0

您好我有一個要求來定製UITableViewCell。因此,我創建了一個自定義類和必要的UI(xib)來支持它。對於XIB,我選擇了該類作爲我創建的派生類。我的問題是,當顯示標籤鏈接到屬性後,我設置運行時的值不顯示所需的文本。它的左邊是空白的。以下是代碼片段。ios TableViewCell自定義問題。不顯示自定義文本

@interface CustomCell : UITableViewCell 
{ 
    IBOutlet UILabel *titleRow; 
} 

@property (nonatomic, strong) UILabel *titleRow; 
@property (nonatomic, strong) UILabel *subTitleRow; 
@property (nonatomic, strong) UILabel *otherTextRow; 
@end 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"MedVaultCell"; 
    CustomCell *cell = nil; 
    cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    // Configure the cell... 
    if (nil == cell){ 

     //Load custom cell from NIB file 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCellHistoryCell" owner:self options:NULL]; 
     cell = [nib objectAtIndex:0]; 

     //cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

     //cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 
    } 

    // get the object 
    Weight *currentCellWeight = [_weights objectAtIndex:indexPath.row]; 

    // Configure the cell... 
    UILabel *titleLable = [[UILabel alloc]init]; 
    titleLable.text = currentCellWeight.customDispText; 
    [cell setTitleRow:titleLable]; 

    cell.titleRow.text = currentCellWeight.display; 
    cell.titleRow.textColor = [UIColor redColor]; 
    //cell.textLabel.text = [[_weights objectAtIndex:indexPath.row] customDispText]; 
    //cell.textLabel.textColor = [UIColor whiteColor]; 


    return cell; 
} 
+0

您正在將'cellForRowAtIndexPath'放入自定義單元類中? – 2012-08-13 18:35:01

回答

0

首先,我希望你cellForRowAtIndexPath在你UITableViewdelegate,而不是在您的自定義單元格類。

其次,現在的問題是:

// Configure the cell... 
UILabel *titleLable = [[UILabel alloc]init]; 
titleLable.text = currentCellWeight.customDispText; 
[cell setTitleRow:titleLable]; 

在這段代碼中,你要創建一個新的標籤,並用新標籤覆蓋您的IBOutlet中的標籤。然後你不顯示新的標籤。相反,代碼改成這樣:

// Configure the cell... 
cell.titleRow.text = currentCellWeight.customDispText; 

但是,你再後馬上覆位titleRow.textcurrentCellWeight.display

所以你需要選擇你想成爲文本的那一個,並設置文本。您不需要創建新標籤(UILabel *titleLable = [[UILabel alloc] init];),因爲您已經在IB中創建了標籤。

+0

對不起,我正在玩代碼,忘了發表評論。出。我只是按照您的建議進行了更改,但仍然無效。如果我嘗試使用默認值 cell.textLabel.text = currentCellWeight.display; 但這意味着我無法按照我需要的方式自定義單元格。 – user959671 2012-08-13 20:18:01

+0

確保您的單元格標識符已設置爲「MedVaultCell」,並且您單元格的類別設置爲「CustomCell」,並且您的IBOutlet已正確連接。 – 2012-08-13 20:23:03

+0

很酷。幫助。謝謝Justin! – user959671 2012-08-13 21:16:21