1

В настоящее время у меня есть UISearchBar в обычном UIViewController. SearchBar больше или меньше посередине UIView, и когда я нажимаю, чтобы ввести какой-либо текст, мой TableView полностью перекрывает searchBar, и я не могу нажать кнопку clear/cancel: я не вижу строку поиска больше. Когда я полностью перемещаю свой поисковик в верхнюю часть моего представления, это прекрасно. Но я делаю это с Раскадкой. Как я могу сделать то же самое программно? Переместите SearchBar в верхнюю часть представления.iOS - Передвинуть UISearchBar программно

Большое спасибо за вашу помощь

ответ

0

Я бы рекомендовал смотреть в UISearchController (IOS 8+). От компании Apple Docs:

Класс UISearchController определяет интерфейс, который управляет представлением строки поиска совместно с результатами поиска контента контроллера.

Документы Apple можно найти here.

Если вы настаиваете делать это вручную, вы можете попробовать настройке ограничения Auto Layout следующим образом поместить SearchBar в верхней части TableView всегда:

[self addConstraint:[NSLayoutConstraint constraintWithItem:_searchBar 
              attribute:NSLayoutAttributeBottom 
              relatedBy:NSLayoutRelationEqual 
               toItem:_myTableView 
              attribute:NSLayoutAttributeTop 
              multiplier:1.0 
               constant:0.0]]; 
+0

Я, к сожалению, не использую AutoLayout в своем проекте ... –

+0

Я бы рекомендовал познакомиться с AL. :) Вы могли бы по крайней мере просто использовать его для этого экрана. Если вы не хотите использовать AL, проверьте 'UISearchController'. – JaredH

0

У вас есть 3 варианта:

  1. [self.view insertSubview:yourSearchBar aboveSubview:yourTableView];

  2. [parentView bringSubviewToFront:yourSearchBar];

  3. [self.view insertSubview:yourSearchBar atIndex:0];

Btw - Все проблемы, с точки зрения, что скачет назад и вперед вызывается при их создании с раскадровки, поэтому его гораздо лучше сделать это программно.

+0

Привет, спасибо за помощь. Но ни один из этих 3 вариантов не приводит к тому, что searchBar находится на вершине UIView ... –