2

Я работаю с Auto Layout Визуальный формат Язык и используя следующие выражения:Auto Layout сломана на прошивкой 8,1

  • H: | [_tableView] |
  • H: | [_actionButton] |
  • V: | [_tableView] [_ actionButton (== buttonHeight)] |

Они отлично работают в 9 и 10, но в iOS 8.1 мы заметили, что макет работает не так, как ожидалось. Вид получает двойное измерение.

  • Для прошивки 10
  • <UIWindow: frame = (0 0; 320 568);>
  • <UIView: frame = (0 0; 320 568);

  • Для прошивки 8.1

  • <UIWindow: frame = (0 0; 320 568);>
  • <UIView: frame = (0 0; 640 1136);>

Тестирование кода им с помощью:

Заранее спасибо

ответ

0

Эта ошибка появляется, чтобы быть вызваны в вашем делегат приложения, инициализируя окно и вызывая makeKeyAndVisible, прежде чем он имеет фрейм , Заменить строку:

self.window = [UIWindow new]; 

С явным кадром при инициализации:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

... и удалить избыточную настройки фрейма окна после строки. В качестве альтернативы вы можете переместить вызов makeKeyAndVisible после установки рамы окна, то есть:

if (initViewController) 
{ 
    self.window = [UIWindow new]; 
    self.window.rootViewController = initViewController; 
    self.window.frame = [[UIScreen mainScreen] bounds]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

В любом случае должна работать.

+0

Это работает! благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^