Причина, по которой мне нужно выяснить, это то, что на iPad UIPickerView имеет ту же высоту в альбомной ориентации, что и в портрете. На iPhone это другое. Руководство по программированию IPad вводит «идиома» значение UIDevice:Лучший способ программного обнаружения аппаратного обеспечения iPad/iPhone
UIDevice* thisDevice = [UIDevice currentDevice];
if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
{
// iPad
}
else
{
// iPhone
}
, который работает нормально, пока вы находитесь в IPad (3.2), но не iPhone (3.1.3) - так что похоже, что также должно быть IFDEF условно компилировать эту проверку, как:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200
UIDevice* thisDevice = [UIDevice currentDevice];
if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
{
// etc.
}
#endif
для меня это начинает выглядеть очень неуклюжим. Что лучше?
Если вы перейдете к определению UI_USER_INTERFACE_IDIOM(), вы увидите, что он использует свойство [[UIDevice currentDevice] userInterfaceIdiom]. 'статическими рядный UIUserInterfaceIdiom UI_USER_INTERFACE_IDIOM() { возвращение ([[UIDevice CurrentDevice] respondsToSelector: @selector (userInterfaceIdiom)] [[UIDevice CurrentDevice] userInterfaceIdiom]: UIUserInterfaceIdiomPhone?);' – KarenAnne
Ях! Вот как я нашел комментарий в своих документах, которые я цитировал в этом ответе :) –
Что я имею в виду, вы можете использовать 'UI_USER_INTERFACE_IDIOM()' даже в iOS версии 3.2 или новее, потому что это то же самое, что '[UIDevice currentDevice] .userInterfaceIdiom ] '. Правильно? – KarenAnne