Получить высоту ячейки в подклассе UITableViewCell - PullRequest
2 голосов
/ 05 августа 2011

У меня есть табличное представление, в котором ячейки разделены на подклассы.В подклассе я называю подкласс UIView.Я реализовал tableView:heightForRowAtIndexPath: и хотел бы получить эту высоту в моем подклассе, чтобы установить высоту экземпляра моего подкласса UIView.

Есть ли способ сделать это?

У меня естьпробовал использовать self.bounds.size.height и self.contentView.frame.size.height, но ни один из них, похоже, не дает правильную высоту.

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code

        textCellView = [[TextCellView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
        [[self contentView] addSubview:textCellView];
    }
    return self;
}

1 Ответ

9 голосов
/ 05 августа 2011

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

- (id) initWithHeight: (CGFloat) cellHeight {
  if ((self = [super initWithStyle: UITableViewCellStyleDefault 
                   reuseIdentifier: @"MyCustomTableViewCell"])) {
    // perform all layout that needs to happen
    // use cellHeight in all the layout calculations 
  }
  return self;
}
...