如何为 iOS 7 和 iOS 8 实现搜索控制器
How to implement search controller for both iOS 7 & iOS 8
我的目标是我的应用程序应该 运行 在 iOS 7 和 iOS 8 上。由于 UISearchDisplayController 在 iOS 8 中被弃用,我使用 UISearchController iOS 8. 但它在 iOS 中不起作用 7. 如果我使用 UISearchDisplayController 那么它将在 iOS 中起作用 7. 但是为两个平台实现搜索控制器的最佳方法是什么?在 iOS 8 中,我实现了如下搜索控制器 -
override func viewDidLoad() {
super.viewDidLoad()
// Search Controller Setup
searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "ব্র্যান্ড/সংস্থা/দোকান খুঁজুন"
// Make sure the that the search bar is visible within the navigation bar.
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
}
并且对于 SWIFT 中的 iOS 7,我如何像上面那样以编程方式实现 UISearchDisplayController 以确保搜索栏在导航栏中可见?
使用ios7方式。即使它弃用。
或者您将不得不制作两份代码,一份用于句柄 iOS7,另一份用于 iOS8。
如果您的目标是 iOS 7,Xcode 将不会向您显示警告。
searchController = UISearchController(searchResultsController: nil)
// 更改搜索栏的外观
searchController.searchBar.tintColor = UIColor.whiteColor()
searchController.searchBar.barTintColor = UIColor(red: 235.0/255.0, green: 73.0/255.0, blue: 27.0/255.0, alpha: 1.0)
searchController.searchBar.placeholder = "Search Something"
searchController.searchBar.prompt = "Quick Search"
// 让searchBar出现在导航栏中
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
// 你不需要将委托设置为自己,而是
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false // important
在此之后,您需要遵守 UISearchResultsUpdating 协议并实施,
func updateSearchResultsForSearchController(searchController: UISearchController)
其中将包含您的搜索逻辑。
我的目标是我的应用程序应该 运行 在 iOS 7 和 iOS 8 上。由于 UISearchDisplayController 在 iOS 8 中被弃用,我使用 UISearchController iOS 8. 但它在 iOS 中不起作用 7. 如果我使用 UISearchDisplayController 那么它将在 iOS 中起作用 7. 但是为两个平台实现搜索控制器的最佳方法是什么?在 iOS 8 中,我实现了如下搜索控制器 -
override func viewDidLoad() {
super.viewDidLoad()
// Search Controller Setup
searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "ব্র্যান্ড/সংস্থা/দোকান খুঁজুন"
// Make sure the that the search bar is visible within the navigation bar.
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
}
并且对于 SWIFT 中的 iOS 7,我如何像上面那样以编程方式实现 UISearchDisplayController 以确保搜索栏在导航栏中可见?
使用ios7方式。即使它弃用。 或者您将不得不制作两份代码,一份用于句柄 iOS7,另一份用于 iOS8。 如果您的目标是 iOS 7,Xcode 将不会向您显示警告。
searchController = UISearchController(searchResultsController: nil)
// 更改搜索栏的外观
searchController.searchBar.tintColor = UIColor.whiteColor()
searchController.searchBar.barTintColor = UIColor(red: 235.0/255.0, green: 73.0/255.0, blue: 27.0/255.0, alpha: 1.0)
searchController.searchBar.placeholder = "Search Something"
searchController.searchBar.prompt = "Quick Search"
// 让searchBar出现在导航栏中
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
// 你不需要将委托设置为自己,而是
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false // important
在此之后,您需要遵守 UISearchResultsUpdating 协议并实施,
func updateSearchResultsForSearchController(searchController: UISearchController)
其中将包含您的搜索逻辑。