UITableViewCell子类不允许我设置标签文本

时间:2012-09-14 11:48:08

标签: ios uitableview uilabel subclass

我创建了UITableViewCell的子类,以获得更大的TableViewCell以及更多选项。

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

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

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

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

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

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

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

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

为每个单元格获得适当的高度(工作正常)。

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

1 个答案:

答案 0 :(得分: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; 中,例如:

{{1}}