3

我创建了一个子类UITableViewCell来获得更大的 TableViewCell 并提供更多选项。

但我的问题是我无法设置标签的文本:

BlogItem *bi = [[channel items] objectAtIndex:[indexPath row]];

NSLog(@"%@", [bi title]);
[[cell mainLabel] setText:[bi title]];
NSLog(@"%@", [[cell mainLabel] text]);

第一条日志消息返回我期望的文本,但第二条总是记录(空)。

我真的不知道应该有什么问题。我像往常一样创建了标签:

@property (weak, nonatomic) IBOutlet UILabel *mainLabel;

当然,我连接了标签并合成了它们(检查了两次)。我也实现了这个方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

为每个单元格获取适当的高度(效果很好)。

顺便说一句,复选标记按预期显示。这只是关于标签。

4

1 回答 1

1

确保您在方法中实例化您的自定义UITableViewCell子类cellForRowAtIndexPath。还要确保这些IBOutlets是在您的UITableView子类中声明的,而不是在包含TableView. 还要确保界面生成器中单元格的父类设置为相同的子类。

像这样的东西(自定义UITableViewCell子类接口文件):

#import <UIKit/UIKit.h>

@interface MyCustomCell : UITableViewCell
    @property (nonatomic, weak) IBOutlet UILabel *mainLabel;
@end

然后@synthesize在实现文件中:

@synthesize mainLabel;

然后在 中cellForRowAtIndexPath,类似:

static NSString *CellIdentifier = @"MyCellIdentifier";
MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

BlogItem *bi = [[channel items] objectAtIndex:[indexPath row]];

// Configure the cell...
cell.mainLabel.text = [bi title];
// ... Other stuff
return cell;
于 2012-09-14T13:21:25.710 回答