2014-01-22 2 views
1

Приветствую всех, что я новичок. Я создаю приложение, которое будет работать в ios5, а также ios7. Моя проблема в том, что когда я устанавливаю кадр изображения для ios5 на дисплее отлично в симуляторе, но когда я запускаю его на устройстве, то Y-координата автоматически увеличивается, а положение изображения меняется. Пожалуйста, скажите мне, почему это происходит и как для установки фреймов для разных устройств в одном приложении.Как установить фреймы для нескольких устройств в ios?

+0

Это не iOS, который является основанием для изменения, это iPhone <5 и iPhone5, который делает разницу. Если вы хотите, чтобы ваш вид в той же позиции просто удалял автозапуск –

+2

Почему вы поддерживаете iOS 5 или даже iOS 6? Учитывая, что iOS 7 находится на ~ 80% всех устройств, если вы специально не нацелились на более старые устройства, вы можете сэкономить много хлопот, перейдя только на iOS 7. – CaptainRedmuff

ответ

0
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 6 
} 
else if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 7 
} 

Вы можете попробовать это, этот код предоставит вам версию ios. Дайте мне знать, если это помогает .. :)

Edit:

Если вы хотите, чтобы получить размер экрана попробуйте следующий код:

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
if (screenRect.size.height == 568) { 
    //Its IPhone 5 
} 
else if (screenRect.size.height == 480){ 
    //Its below iPhone 5 
} 
+0

Вы не должны использовать 'systemVersion', чтобы проверить, какая версия iOS работает. Но вы должны проверить версию фундамента: 'if (floor (NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1)' – rckoenes

+0

@rckoenes Имеет ли системная версия какой-либо плохой эффект? Я не знаю. Дайте мне знать об этом, я отредактирую свой ответ. – Rashad

+0

Ну, 'systemVersion' - это просто строка, которую вы бросаете в поплавок. Затем сравнивая. «FoundationVersionNumber» - это количество SDK подстрочного слоя, так сказать, и используется для определения изменений в нем. Apple предлагает вам использовать 'foundationVersionNumber' для обнаружения версий iOS. Например, Apple TV является systemVersion отличается от номера версии iOS, но не формирует номер основания. – rckoenes

3

Вы не должны проверить устройства или iOS для этого. Вы должны использовать автомасштабирование или маскирование UIView Autoresizing. Существуют различные видеоролики WWDC по этим темам.