在扩展的UItableviewcell中更改自定义标签

时间:2014-07-31 19:59:02

标签: ios objective-c uitableview

我创建了一个扩展的自定义表格单元格。当它展开时,它会显示一个UILabel和两个UIButton。 UILabel应该显示来自后端的数据。我在CustomCell接口文件中创建了customLabel。然后我将CustomCell类导入我的InboxTableViewController,并实现了自定义单元格。标签仅在轻拍单元格时显示,然后展开。我如何改变UILabel,因为cell.customLabel.text在这里不起作用,因为它不是单元格的属性。以下是相关代码:

CustomCell.h


@interface CustomCell : UITableViewCell
{
UIImage *userImage;
UILabel *userName;

//below widgets will display when user tapped
  @public
UIButton *leftButton, *rightButton;
UILabel *customLabel;
BOOL userTapped;
}
@property (weak, nonatomic) IBOutlet UILabel *userName;

@property (weak, nonatomic) IBOutlet UIImageView *userImage;



- (void) setData:(NSDictionary*) d;

@end

这里是inboxviewcontroller.m,我尝试与customLabel一起实现customcell。

:
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
{
 static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (!cell) {
    cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
 //  PFObject *message = [self.messages objectAtIndex:indexPath.row];

PFObject *message = [self.messages objectAtIndex:indexPath.row];

cell.userName.text = [message objectForKey:@"from"];
//cell.userImage.image = [message objectForKey:@"image1"];
cell.customLabel.text =  [message objectForKey:@"message"];

return cell;}

2 个答案:

答案 0 :(得分:0)

这不起作用,因为你直接创建CustomCell的实例,而你必须从nib加载CustomCell视图,所以它将创建customLabel的实例,并使用它你可以设置文本,使用下面的代码

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
            NSArray *nib=[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil];
            cell=[nib objectAtIndex:0];
        }

答案 1 :(得分:0)

对于自定义UITableViewCell,你应该看看这个 tutorial 。它会给你一个想法。