Вопрос

У меня есть приложение для iPad, которое я хотел бы сделать универсальным, однако это кажется тревожным. Я изменил ситуацию, чтобы поддержать обе сборки, но при строительстве я получаю много ошибок в использовании Uipopovers. Вот мои вопросы:

  • Почему UI_USER_INTERFACE_IDIOM() Не компилируйте или зарегистрируйтесь на 3.1.3?
  • Могу ли я условно иметь переменные в определении класса на основе UI_USER_INTERFACE_IDIOM()?
  • Если нет, я должен сделать два разных контроллера представления?

Спасибо!

Это было полезно?

Решение

Почему UI_USER_INTERFACE_IDIOM () не компилируется или зарегистрируется на 3.1.3?

А UI_USER_INTERFACE_IDIOM Макро доступен только с 3.2. Те же ограничения для userInterfaceIdiom свойство Uidevice. Анкет Это означает, что вы можете получить только универсальное приложение, начиная с SDK 3.2.

Могу ли я иметь условно иметь переменные в определении класса на основе UI_USER_INTERFACE_IDIOM ()?

Нет UI_USER_INTERFACE_IDIOM Макро - это всего лишь сочетание времени выполнения, чтобы получить текущую идиому пользовательского интерфейса устройства.

Если нет, я должен сделать два разных контроллера представления?

Если у вас очень другой пользовательский интерфейс между двумя устройствами, его разумно использовать два разных контроллера представления и создать правильный во время выполнения (например, в контроллере приложения), используя UI_USER_INTERFACE_IDIOM макро.

Другие советы

Мне очень повезло, что просто выбрал цель, а затем перешел на проект-> обновить текущую цель для iPad.

Мое приложение довольно простое, в основном состоит из просмотров таблиц и просмотров веб -сайтов, но стоит сделать резервную копию и пытаться ...

И да, вы должны отправить его в качестве приложения 3.2, которое может нацелиться 3.1.*

Есть также много других вещей, которые вы должны сделать: убедитесь, что это можно просмотреть на любой ориентации (в первый раз отказано от этого). Убедитесь, что у вас есть все новые изображения. У вас должно быть 3 или 4 значка, вместо того, чтобы только один, например, приложение для iPhone. (Значок iPad, значок iPhone, небольшой значок для прожектора и т. Д.). И, конечно, экранины для iPad для магазина.

Действительно приятный способ, который я использую для тестирования, если это iPad или iPhone, - это проверить, может ли устройство использовать контроллер с разделенным представлением, поскольку для подвижного будущего нет устройства с экраном, таким же небольшим, как iPhone, сможет использовать разделение Просмотр контроллера. Я только что создал функцию, чтобы сделать это для меня:

+(BOOL)isIpad{ return NSClassFromString(@"UISplitViewController") != nil; }

Затем в любом месте моего приложения я хочу отобразить что -то другое в зависимости от устройства, я просто проверяю это:

int width = 150;
if([NabAppDelegate isIpad]){
   width = 350;
} else {
   width = 150;
}
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5,10,width,25)];

Это намного лучше, чем проверять версию ОС, как я видел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top