Я (как и все остальные здесь) нахожусь в той же проблеме перекрытия строки состояния, что и все остальные, с небольшим завихрением, и именно поэтому я открываю новый вопрос об этом.
Кажется, есть какой-то механизм, который позволяет UISearchBar знать, где его положение, которое полностью из-за удара.
jaredsinclair ответ здесь (строка состояния iOS 7 в стиле iPhone iOS 6 по умолчанию в приложении iPhone), подробно объясняет, как Apple Engineers позволяют нам вводить логику к нашему приложению, чтобы в максимально возможной степени сочетаться с пользовательской средой.
Я прошел процесс тщательного изучения каждого UIViewController в своем приложении и сделал возможной малейшую модификацию.
В большинстве случаев я смог решить проблему, используя код, который я нашел через несколько ответов SO
// Do any additional setup after loading the view.
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
self.edgesForExtendedLayout = UIRectEdgeNone;
}
Однако это не сработает независимо от того, что я делаю в определенном представлении, где скрывается UINavigationBar.
На основе решения, найденного через SO, я смог решить эту проблему, добавив следующий фрагмент логики к этому конкретному UIViewController
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
viewFrame.origin.y = viewFrame.origin.y+statusBarFrame.size.height;
}
Это подталкивает UIViewController n пикселей вниз "в зависимости" от высоты строки состояния.
Эффект этого показан здесь
Проблема заключается в том, что когда я вхожу в поле поиска, UISearchBar добавляет по себе 20px дополнение в верхней части, что компенсирует весь пользовательский интерфейс.
Это приводит меня к выводу, что UISearchBar пытается настроить себя, и по совпадению он настраивается на ту же сумму, что и высота строки состояния.
Если я не взламываю позицию, как только я войду в поле поиска, тогда эта автоматическая настройка выравнивает UISearchBar аккуратно под строкой состояния.
Надеюсь, я подробно рассказал о своей путанице, мне интересно, есть ли у кого-нибудь идеи для решения.