Ширина UITableViewCell для initWithStyle: reuseIdentifier: - PullRequest
0 голосов
/ 21 января 2012

Я создал пользовательский UITableViewCell, который содержит 2 метки. Один должен иметь фиксированную ширину, а другой должен расширяться вправо, пока есть место.

Я создаю UILabels следующим образом:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
        codeLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 60, 20)]; 
        [self.contentView addSubview:codeLabel];
        [codeLabel release];

        nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(76, 4, self.frame.size.width - 100, 34)];
        [self.contentView addSubview:nameLabel];
        [nameLabel release]; 
    }

    return self;
}

Проблема в том, что в этот момент self.frame.size.width всегда возвращает 320.0, поэтому UILabels не имеют соответствующего размера. Как я могу преодолеть эту проблему?

1 Ответ

1 голос
/ 21 января 2012

Установите autoresizingMask второй метки на UIViewAutoresizingFlexibleWidth.

Если ваши потребности сложнее, чем может представить autoresizingMask, вам потребуется реализовать собственную layoutSubviews.

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