Позиционирование UISwitch в UITableView для iPhone, iPad и Retina - PullRequest
0 голосов
/ 30 января 2012

У меня есть сгруппированный TableView, и я поместил UIS-переключатель справа от строки, слева от «>». На данный момент я использовал явный CGRect (без вычисляемых значений).

В iPhone 4.2 он расположен правильно, но, конечно, на iPad 4.2 это не так.

Существуют ли конкретные способы расчета позиционирования, которые приведут к одинаковому относительному размещению независимо от разрешения устройства / экрана? Или я просто использую ширину экрана, ширину ячейки таблицы и т. Д. И вычисляю сам?

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Для настраиваемых видов (например, подкласса UITableViewCell) вы можете использовать layoutSubviews, чтобы выполнить позиционирование настраиваемого вида:

- (void) layoutSubviews {
    [super layoutSubviews];

    // layout relative to contentView frame
    switchView.frame = CGRectMake(
        CGRectGetWidth(self.contentView.frame) - CGRectGetWidth(switchView.frame) - someMargin,
        4.0f / y, // or something else related to the contentView
        CGRectGetWidth(switchView.frame),
        CGRectGetHeight(switchView.frame)
    );
}

Вы также можете использовать маски автоматического изменения размера, чтобы автоматизировать изменение положения подпредставлений. Это будет работать для вашего случая (позиционирование справа от представления контейнера), но менее полезно, если вы хотите позиционировать относительно просмотра одного уровня.

0 голосов
/ 30 января 2012

Вам следует ознакомиться с UIView autoresizingMask и UIView autoresizesSubviews.Сохраняет вас много агонии.

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