UITableViewCell - Добавление подпредставления при использовании UITableViewCellStyle - PullRequest
0 голосов
/ 05 июля 2011

Итак, у меня есть UITableView , и все его ячейки визуализируются с помощью UITableViewCellStyleValue1 .

Этот стиль отлично работает для меня в ячейке .indentationLevel

Теперь внутри ячеек мне нужно отобразить UISwitch вместо detailTextLabel .Я начал работать на cellForRowAtIndexPath и вот мой код.

UISwitch *switchField = [[UISwitch alloc] init];
switchField.frame = CGRectMake(tableView.bounds.size.width - 194, 8, 94, 27);
switchField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
switchField.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
[cell.contentView addSubview:switchField];

Сначала он прекрасно работает, но всякий раз, когда я поворачиваю устройство, границы коммутатора остаются неизменными.Я подумал, что добавив UIView к cell.contentView , потребуется выравнивание, когда это необходимо.

Чего мне не хватает и больше всего чего мне следуетделать для того, чтобы добиться того, чего я хочу?

Спасибо.

1 Ответ

0 голосов
/ 22 июля 2011

Вы можете попробовать:

switchField.autoresizingMask = UIAutoresizingMaskFlexibleLeft | UIAutoresizingMaskFlexibleRight;

или, может быть, один или другой:

switchField.autoresizingMask = UIAutoresizingMaskFlexibleLeft;

switchField.autoresizingMask = UIAutoresizingMaskFlexibleRight;

В противном случае вы могли бы создать подкласс UITableViewCell, сделать глобальный swithField и переопределить layoutSubviews:

- (void)layoutSubviews {
    [super layoutSubviews];
    switchField.frame = CGRectMake(tableView.bounds.size.width - 194, 8, 94, 27);
}

Надеюсь, это поможет.

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