2015-07-16 4 views
1

У меня есть UINavigationItem, и я хочу добавить UISearchBar к нему. Вот как я делаю, что:UISearchBar в iOS 8 - перемещение пользовательского интерфейса

let searchBar = UISearchBar(frame: CGRectMake(0, 0, self.navigationController!.navigationBar.bounds.width, self.navigationController!.navigationBar.bounds.height)) 
//searchBar.sizeToFit() 
searchBar.showsCancelButton = true 
let barWrapper = UIView(frame: searchBar.frame) 
barWrapper.addSubview(searchBar) 
self.navigationItem.titleView = barWrapper 

Вот результат: enter image description here

Что здесь не так?

ответ

2

sizeToFit() сделает UIScrollView достаточно большим, чтобы соответствовать его подзонам.

Вам необходимо установить его в соответствии с панелью навигации, чтобы избавиться от пробелов.

EDIT

Если вы не используете панель навигации для навигации, попробуйте просто положить панель поиска непосредственно с вашей точки зрения. Таким образом, у вас будет полный контроль над рамкой.

+0

P.S. UISearchBar является подклассом UIView, поэтому вам, вероятно, не нужно помещать его в другой UIView, прежде чем устанавливать его в titleView. – spongessuck

+0

Смотрите мой обновленный код - то же смещение –

+0

Не будет никакого значения, что вы инициализируете его кадром, если впоследствии вы вызовете sizeToFit(). sizeToFit() изменяет кадр. – spongessuck

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