无法继承UITableViewCell

NSE*_*rer 0 objective-c uitableview ios

我已经创建了一个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;
}
Run Code Online (Sandbox Code Playgroud)

现在,我以这种方式在表格视图中使用此自定义单元格:

- (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;
}
Run Code Online (Sandbox Code Playgroud)

但是标签不会显示在我的表格视图中.我错过了什么?

jrt*_*ton 5

initWithFrame:reuseIdentifier:已过时,对于指定初始化UITableViewCellinitWithStyle:reuseIdentifier:.可能在您使用当前方法时,contentView未创建,因此您要添加标签nil.

更重要的是,你甚至没有调用你被覆盖的方法 - 你已经覆盖了原来的旧方法initWithFrame:.