Как программно настроить 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 программно, но я не знаю, как, любая помощь, которую я буду признателен
Ответы
Ответ 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 "Прозрачный"