Пользовательское рисование UITableViewCell - PullRequest
3 голосов
/ 10 июля 2009

Я пытаюсь создать UITableViewCell, который переопределяет полный рисунок содержимого. Я переопределил drawRect, который вызывается, но он по-прежнему рисует содержимое по умолчанию.

Как мне заставить его прекратить рисовать содержимое по умолчанию и как заменить его собственным рендерингом?

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

    DLog (@"Overloaded TableCell initWithStyle");
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {

    }
    return self;
}

- (void)drawRect:(CGRect)rect {
    DLog (@"TableCell::drawRect");

    // expecting it to draw nothing
}

Ответы [ 4 ]

9 голосов
/ 10 июля 2009

Лорен Брихтер (автор Tweetie) рассказала об этом в одной из лекций по программированию iTunes U Stanford для iPhone. Он сказал, что получил отличные результаты прокрутки, создав подкласс UITableViewCell и нарисовав содержимое каждой ячейки напрямую, а также приводит пример кода в своем посте на тему .

Он также отмечает, что Apple добавила аналогичный пример в один из примеров кода.

3 голосов
/ 11 января 2013

Блог Лорен Брихтер больше не доступен. Однако код был перенесен сюда:

https://github.com/enormego/ABTableViewCell

В надежде, что это более постоянный URL.

1 голос
/ 10 июля 2009

Попробуйте создать подкласс UIView (с вашим собственным drawRect) и назначьте его вместо contentView ячейки таблицы.

0 голосов
/ 10 июля 2009

Рассматривали ли вы использование Interface Builder для создания пользовательского UITableViewCell?

Создайте свой xib и затем загрузите его так:

static NSString *CellIdentifier = @"Cell";
cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"TableCell" owner:self options:nil];
    cell = [nibContents objectAtIndex:0];
}

// do your customization
return cell;

Обратите внимание, что фактическая ячейка имеет индекс 0 в xib.

Приветствия ...

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