问题描述
我在导航栏标题视图中添加了一个搜索栏。搜索栏显示正确且在搜索和检索结果时工作正常。
但是每次我点击搜索栏输入查询时,整个导航栏都会消失,不再可见。如果我然后向下拖动视图,它会重新出现。虽然在视图之外,我仍然可以输入和搜索并查看结果,但整个导航栏不在视图中。
代码上下文:我正在使用 Algolia 搜索 SDK 从 google firestore 查询数据。然后将命中添加到结果表视图控制器。
import UIKit
import Foundation
import InstantSearch
class AlgoliaViewController: UIViewController,UISearchBarDelegate {
let userHitsInteractor: HitsInteractor<User> = .init(infiniteScrolling: .off,showItemsOnEmptyQuery: false)
let businessHitsInteractor: HitsInteractor<Business> = .init(infiniteScrolling: .off,showItemsOnEmptyQuery: false)
let multiSearch = MultiIndexSearcher(appID: APP_ID,apiKey: KEY,indexNames: ["dev_USERS","dev_BUSInesS"])
lazy var multiConnector: MultiIndexSearchConnector = .init(searcher: multiSearch,indexModules: [
.init(indexName: "dev_USERS",hitsInteractor: userHitsInteractor),.init(indexName: "dev_BUSInesS",hitsInteractor: businessHitsInteractor)
],searchController: searchController,hitsController: hitsTableViewController)
lazy var searchController: UISearchController = .init(searchResultsController: hitsTableViewController)
let hitsTableViewController = MultiIndexController()
let statsInteractor: StatsInteractor = .init()
override func viewDidLoad() {
super.viewDidLoad()
multiConnector.connect()
multiSearch.search()
statsInteractor.connectController(self)
setupUI()
}
func setupUI() {
view.backgroundColor = .white
//navigationItem.searchController = searchController
navigationItem.titleView = searchController.searchBar
navigationController?.navigationBar.backgroundColor = .white
navigationController?.navigationBar.isTranslucent = false
navigationController?.hidesBarsOnSwipe = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.showsSearchResultsController = true
searchController.automaticallyShowsCancelButton = false
searchController.searchBar.delegate = self
searchController.obscuresBackgroundDuringPresentation = false
hitsTableViewController.view.backgroundColor = .white
}
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
searchController.isActive = true
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
searchController.isActive = false
}
}
目前已注释掉,但在我尝试之前:
navigationItem.searchController = searchController
这并没有表现出相同的问题,但是就用户界面而言,导航栏似乎最终更高,搜索栏首尾相连地位于栏下方并且与导航栏按钮不对齐,因此看起来很奇怪。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)