2015-05-13 6 views
0

В моем приложении у меня есть такой баг:Строка поиска ошибка - IOS

ladida

Когда я прокручиваю вниз, содержание таблицы видно выше строку поиска. В чем причина?

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.resultSearchController = ({ 
     let controller = UISearchController(searchResultsController: nil) 
     controller.searchResultsUpdater = self 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     controller.searchBar.barTintColor = UIColor(red: 52.0/255.0, green: 73.0/255.0, blue: 94.0/255.0, alpha: 1.0) 

     self.tableView.tableHeaderView = controller.searchBar 

     return controller 
    })() 

    self.tableView.reloadData() 
} 
+0

@BSMP Я добавил код viewDidLoad, не могли бы вы проанализировать его, пожалуйста? –

+0

@MartinR Я добавил код viewDidLoad, не могли бы вы его проанализировать? –

ответ

0

Вы должны сделать строку состояния не полупрозрачной.

Цвет строки состояния - property of UIApplication. Вам необходимо установить его в действительный UIStatusBarStyle.

+0

если я сделаю его полупрозрачным, строка поиска исчезнет при вводе –

+0

Я добавил код viewDidLoad, не могли бы вы его проанализировать? –

+0

Ваш 'viewDidLoad' ничего не добавляет. Вам следует попытаться переопределить preferredStatusBarStyle в вашем UIViewController как таковой: func preferredStatusBarStyle() -> UIStatusBarStyle {вернуть UIStatusBarStyleBlackOpaque} ', чтобы сообщить системе, что ваш контроллер хочет отобразить непрозрачный статусBar. –

0

iOS Human Interface Guidelines список 3 способа предотвращения отображения содержимого в строке состояния.

  • Используйте навигацию контроллер для отображения содержимого. Контроллер навигации автоматически отображает фоновый индикатор состояния, и он гарантирует, что его содержимое не будет отображаться за панель состояния. (Чтобы узнать больше о навигационных контроллерах см Navigation Controllers.)

  • Создать nondistracting пользовательских изображений, такие как градиент-и отображать его за строкой состояния. Чтобы изображение осталось за строкой состояния, вы можете использовать контроллер вида, чтобы сохранить изображение над прокруткой, или вы можете использовать прокрутку, чтобы сохранить , прикрепленный к ней сверху.

  • Положение содержания, чтобы избежать области строки состояния (то есть области, определенной свойством statusBarFrame приложения). Если вы это сделаете, то должен использовать цвет фона окна, чтобы обеспечить сплошной цвет за панель состояния.

0

Новый UISearchController был разработан для работы с UITableView и UINavigationBar. Его функциональность зависит от присутствия вашей навигационной панели. когда панель поиска имеет содержимое в текстовом поле, она будет зафиксирована поверх страницы под панелью навигации. ну, у вас нет навигационной панели, она защелкнутся в руководстве по верхнему виду и всегда учитывает строку состояния (если она есть). Я думаю, что единственный способ решить вашу проблему без фактической панели навигации - добавить представление в строке состояния и сделать его непрозрачным, как и панель поиска. это немного хаки, но в моей книге все в порядке.

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