我已经创建了一个UITableViewCell子类,如下所示。我所做的就是在单元格的内容视图中添加一个标签并设置其文本。
#import <UIKit/UIKit.h>
@interface CustomTableViewCell : UITableViewCell {
}
@end
#import "CustomTableViewCell.h"
@implementation CustomTableViewCell
@synthesize horizontalTableView;
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame]))
{
UIView *myContentView = self.contentView;
UILabel *l = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 100, 30)];
l.text = @"Hi";
[myContentView addSubview:l];
[l release];
}
return self;
}
现在我以这种方式在表格视图中使用这个自定义单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"MyCell";
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[[CustomTableViewCell alloc] initWithFrame:CGRectMake(0, 0, 50, 300) reuseIdentifier:cellIdentifier] autorelease];
}
return cell;
}
但是我的表格视图中没有显示标签。我错过了什么?
答案 0 :(得分:5)
initWithFrame:reuseIdentifier:
已弃用,UITableViewCell
的指定初始值设定项为initWithStyle:reuseIdentifier:
。可能在您使用当前方法时,未创建contentView
,因此您要将标签添加到nil
。
更重要的是,你甚至没有调用被覆盖的方法 - 你已经覆盖了普通的initWithFrame:
。