Swift – 自定义SearchController和SearchBar

我试图重新创build在雅虎财经应用程序中看到的search字段。 我跟着一个在线教程来定制UISearchBar和UISearchController,但是我仍然有一些问题。 如果你们中的任何一个人能够打开我的项目,看看哪里出了问题,哪里需要添加这些线路,哪怕这些线路真的很棒。

我的尝试解决scheme项目可以在这里find: https : //github.com/jordanw421/yahoofinance


1)如何让查询出现的时候,search栏处于激活状态(文本向左​​,input指示灯闪烁)? 在下面的链接中,您可以看到我在说什么,当button被按下时,search视图被加载,search栏立即被激活。

我试过使用:

customSearchController.definesPresentationContext = true customSearchController.isActive = true customSearchController.searchBar.becomeFirstResponder() 

但是这并没有奏效。 我应该在prepareForSegue的初始视图控制器中设置这些吗?


2)如何设置键盘外观(黑暗),并添加一个button的键盘工具栏?

我能够得到这个工作非自定义search栏,但出于某种原因,这些现在不工作:

 customSearchController.searchBar.keyboardAppearance = .dark 

 func addKeyboardButton() { let keyboardToolbar = UIToolbar() keyboardToolbar.sizeToFit() keyboardToolbar.isTranslucent = false keyboardToolbar.barTintColor = UIColor.blue let addButton = UIButton(type: .custom) addButton.frame = CGRect(x: keyboardToolbar.frame.size.width / 2, y: keyboardToolbar.frame.size.height / 2, width: 50, height: 30) addButton.addTarget(self, action: #selector(clickMe), for: .touchUpInside) let item = UIBarButtonItem(customView: addButton) keyboardToolbar.items = [item] customSearchController.searchBar.inputAccessoryView = keyboardToolbar } 

并打电话,

 addKeyboardButton() 

在search栏中configurationfunction。


3)如何防止滚动search栏/表视图标题,但仍允许tableView滚动?

如果你看看我的尝试解决scheme,你可以看到,由于某种原因,tableview标题与表视图滚动。 当我使用非自定义search栏时,标题保持静态。


我知道这里有很多问题,但是我一直在困扰这个问题,而且真的可以用一些帮助。 谢谢。