我创建了一个扩展的自定义表格单元格。当它展开时,它会显示一个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;}
答案 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 。它会给你一个想法。