2014-01-07 5 views
0

У нас есть UISearchBar, поддерживаемый UISearchDisplayController в нашем приложении. Изменение экранов с помощью панели поиска, скрытой частично под заголовком, приводит к тому, что часть панели не будет удаляться, когда пользователь вернется, показывая фон панели поиска. Здесь у меня он установлен на красный, что показывает мне, что размер и положение поискового кадра все еще верны.Панель поиска частично исчезает при переключении просмотров в iOS 7

Start state

Scroll up so part of the bar is hidden

Move to a new view, then back

Scroll down

Нажатие в любом месте внутри бара вызывает клавиатуру, как и ожидалось. Однако, когда панель перемещается в верхнюю часть экрана, часть, которая была скрыта, перестает отвечать на ввод. Это блокирует выбор текста и нажатия на верхнюю часть кнопки «Отмена».

Cancel button

Я экспериментировал со всеми ответами в this question без успеха, так что я думаю, что наша проблема отличается, хотя, вероятно, связано. Кто-нибудь знает, что происходит, и как мы можем это исправить? Спасибо за ваш вклад.

ответ

2

Если вы работаете на IOS 7.0 версии, то вам необходимо установить следующее свойство, которое недавно введенный в прошивкой 7.0 следующим образом

self.edgesForExtendedLayout = UIRectEdgeNone;

по умолчанию edgeForExtendedLayout имеет значение UIRectEdgeAll, что означает, что контроллеры представлений используют полноэкранную компоновку по умолчанию. И ваш поисковый бар оказался оказанным за навигационной панелью, начиная с смещения навигационной панели.

+0

Я пробовал установить это свойство в 'viewDidLoad', но единственным эффектом является то, что строка состояния теперь черная, а не наш пользовательский цвет. – aednichols

+0

- панель поиска позади панели навигации? – ldindu

+0

При активации панель поиска отображается непосредственно под строкой состояния и перед навигационной панелью. – aednichols

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