2012-10-04 3 views
0

В настоящее время мне нужно преобразовать приложение iOS из iOS 4.0 (3,5-дюймовый дисплей) в iOS 6.0 (4-дюймовый дисплей).Как перевести приложение с ios5 на ios6 (отображение 3,5 'на 4')

  1. Пожалуйста, предложите мне самый простой способ, как сделать ИОС старую Verion (5.0 и старше) приложения совместимы с iOS6 и iPhone5.

  2. Помогите мне в настройке кадров UI-объектов с 3,5-дюймовым XIB для 4-дюймового XIB.

  3. Если у кого-то есть хороший учебник или статья, связанная с этой темой, пожалуйста, предоставьте мне ссылку.

ответ

1

Вы должны использовать следующий код для обнаружения ios6 и iphone 5 и после проведения различия выполнить необходимые изменения по мере необходимости.

соответствовать версии, указанной в системе определяет

//#define __IPHONE_2_0 20000 
//#define __IPHONE_2_1 20100 
//#define __IPHONE_2_2 20200 
//#define __IPHONE_3_0 30000 
//#define __IPHONE_3_1 30100 
//#define __IPHONE_3_2 30200 
//#define __IPHONE_4_0 40000 

// # определить __IPHONE_6_0 60000 Вы можете написать функцию, как это (вероятно, вы должны хранить эту версию где-нибудь, а не вычислять его каждый раз):

+ (NSInteger) getSystemVersionAsAnInteger{ 
int index = 0; 
NSInteger version = 0; 

NSArray* digits = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 
NSEnumerator* enumer = [digits objectEnumerator]; 
NSString* number; 
while (number = [enumer nextObject]) { 
    if (index>2) { 
     break; 
    } 
    NSInteger multipler = powf(100, 2-index); 
    version += [number intValue]*multipler; 
    index++; 
} 
return version; 
} 

Затем вы можете использовать это следующим образом:

if([Toolbox getSystemVersionAsAnInteger] >= __IPHONE_6_0) 
{ 
    //blocks 
} else 
{ 
//oldstyle 
} 

После определения версии ОС используйте следующие шаги для перехода.

  1. Установите 4-дюймовое изображение запуска для вашего приложения. Так вы получите высоту экрана 1136px (без нее вы получите 960px с черными полями сверху и снизу).
  2. Проверьте свое приложение и, надеюсь, ничего не сделайте, поскольку все должно работать магически, если вы правильно настроили маски для изменения размера.
  3. Если вы этого не сделали, отрегулируйте макеты просмотра с помощью подходящих масок для автоматического изменения размера или просмотрите автоматическую компоновку, если вы хотите поддерживать только iOS 6.
    1. Если у вас есть что-то, что вам нужно сделать для экрана большего размера, то похоже, что вам нужно проверить высоту границ [[UIScreen mainScreen]] (или applicationFrame, но тогда вам нужно рассмотреть высоту строки состояния, если это настоящее), поскольку для этого, похоже, нет никакого конкретного api.

Пример:

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
// code for 4-inch screen 
}else{ 
// code for 3.5-inch screen 
} 

Благодаря.