Невозможно создать подкласс UITableViewCell - PullRequest
0 голосов
/ 04 октября 2011

Я создал подкласс 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;
}

Однако метки не отображаются в моем табличном представлении. Что мне не хватает?

1 Ответ

5 голосов
/ 04 октября 2011

initWithFrame:reuseIdentifier: устарело, назначенный инициализатор для UITableViewCell равен initWithStyle:reuseIdentifier:.Возможно, когда вы используете текущий метод, contentView не создается, поэтому вы добавляете свою метку в nil.

Более того, вы даже не вызываете переопределенный метод - вы переопределили старый initWithFrame:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...