Какао iOS / Touch: Сохранение подпредставления контента UITableViewCell по правому краю - PullRequest
0 голосов
/ 13 июня 2011

Допустим, у меня есть UITableView, который

  1. является частью приложения для iPad
  2. не использует весь экран
  3. меняет свою ширину в зависимости отсостояние приложения и другие представления

Я добавил дополнительное подпредставление (скажем, UILabel) в contentView ячейки UITableView.Я хочу, чтобы правая граница UILabel всегда находилась в 10 пикселях от правой границы ячейки.

Мне удалось сделать это для первоначального рисования табличного представления при любой ширине, специально установив рамку ячеек после ее удаления из очереди.которая также обновляет ширину contentView (в противном случае ячейки кажутся все время шириной 320 пикселей).

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];

if (cell == nil) {
    cell = [[[UITableViewCell alloc]
             initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
    CGRect oldFrame = cell.frame;
    cell.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y, tableview.frame.size.width, oldFrame.size.height);

    /* and other stuff */
}

Вопрос: Как я могу сохранить подпредставления contentView ячейки выровненными по правой границе ячейки, когдаИзменяется ли размер представления таблицы во время выполнения?

1 Ответ

2 голосов
/ 13 июня 2011

Вы можете попробовать настроить ячейку autoresizingMask и ее autoresizesSubviews свойства?

Возможно, это будет работать:

cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
cell.contentView.autoresizesSubviews = YES;

Вы также должны установить autoresizingMask вашего UILabel, я думаю:

label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;

Здесь документы .

...