Подтвердить что ты не робот

Как программно настроить iOS 6/7 Deltas

Я разрабатывал приложение UISplitView, используя Xcode 4.6, когда я покинул iOS6, у меня был дизайн:

enter image description here

Теперь я перехожу на новый Xcode5, и теперь у меня есть этот дизайн:

enter image description here

UINavigationBar перекрывает полностью мой UISearchBar...

Лев Натан рассказал мне об использовании iOS 6/7 Deltas, но так как я создаю и добавляю свои UISplitViewControllers программно,

это может не работать. Мне нужно установить iOS 6/7 программно, но я не знаю, как, любая помощь, которую я буду признателен

4b9b3361

Ответ 1

В iOS 7 теперь есть расширенные ребра, и почему панель навигации перекрывает панель поиска. Вы можете установить self.edgesForExtendedLayout = UIRectEdgeNone; это свойство UIVewControlelr. Вы также можете делать проверки в зависимости от версии iOS, и вы можете делать что-то в зависимости от текущей версии iOS на устройстве.

NSString *version = [[UIDevice currentDevice] systemVersion];
int ver = [version intValue];
if (ver < 7){
//iOS 6 work
}
else{
//iOS 7 related work
}

Ответ 2

Кроме того, вы можете использовать NSFoundationVersionNumber

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
  // > iOS7
} else {
  // <= iOS6
}

Ответ 3

Вы можете создать макрос для решения этой проблемы. это полезно для меня.

#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )

Ответ 4

Если представление, встроенное в UINavigationController - просто отключите "Прозрачный" для вашей основной панели навигации.

В раскадровке выберите пункт "Навигационный контроллер", затем выберите Панель навигации и Инспектор атрибутов (Утилиты - вкладка 4) untick "Прозрачный"