UIView в .XIB на универсальном приложении всегда сообщает размер пользовательского интерфейса iPhone - PullRequest
0 голосов
/ 14 ноября 2011

Я пытаюсь перенести приложение iPhone на iPad с минимально возможной работой, и я застрял на последнем замечании.

У меня есть элемент пользовательского интерфейса, который расположен вдоль нижней части экрана.Элемент пользовательского интерфейса - это просто подкласс UIView с некоторыми методами делегатов и пользовательским рисунком для нужд моих клиентов.UIView содержит несколько объектов UIButton, расположенных на одинаковом расстоянии.

Мой вопрос: как заставить эти программно созданные кнопки UIB оставаться в центре?Существует центральный файл .xib, который содержит UIView подкласса CustomNavBar.В классе CustomNavBar я пытался сделать следующее:

    self.frame.size...

или

    self.bounds.size...

или

    CGRect rect = [[UIScreen mainScreen]bounds];
    rect.origin.size...

, но все возвраты являются стандартными iPhoneразмеры.Я установил все авторазмеры для других объектов, содержащихся в файле .XIB, но я не могу понять, что делать с экземпляром, где аспект пользовательского интерфейса создается программно.

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

1 Ответ

1 голос
/ 14 ноября 2011

Вы можете использовать альтернативный xib для iPad, поэтому он имеет размер iPad по умолчанию. Если ваш xib создан для семейства устройств iPhone, он не будет хорошо интегрирован в iPad.

NSString* xibName = @"myview.xib";
if ([[UIDevice currentDevice].model isEqualToString:@"iPad"])
{
    xibName = @"myview_iPad.xib";
}

Используйте этот код, чтобы получить, например, версию xib для iPad. Вы также можете создать макрос (или функцию), который берет имя xib и возвращает либо имя xib iPhone, либо имя xib iPad (добавьте _iPad, если текущее устройство - iPad).

...