您好我需要自定义UITableViewCell。因此,我创建了一个自定义类和必要的UI(xib)来支持它。对于XIB,我选择了类作为我创建的派生类。我的问题是在将显示标签链接到属性之后,我在运行时设置值不会显示所需的文本。它的左边是空白的。以下是代码段。
@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 :(得分:0)
首先,我希望您的cellForRowAtIndexPath
位于UITableView
delegate
,而不是您的自定义单元格类。
其次,问题在于:
// 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.text
重置为currentCellWeight.display
。
所以你需要选择你想成为文本的那一个并将文本设置为该文本。您无需创建新标签(UILabel *titleLable = [[UILabel alloc] init];
),因为您已在IB中创建了标签。