Reputation: 924
Implementation for search functionality using custom search view controller :
final class MoviesViewController: UITableViewController, UISearchResultsUpdating {
var movies = [Movie]() {
didSet {
tableView.reloadSections(IndexSet(integer: 0), with: .automatic)
}
}
let searchViewController = UISearchController(searchResultsController: SearchResultsViewController())
}
override func viewDidLoad() {
super.viewDidLoad()
configureSearchBar()
}
override func viewDidAppear(_ animated: Bool)
{
searchViewController.searchResultsUpdater = self
navigationItem.searchController = searchViewController
navigationItem.hidesSearchBarWhenScrolling = false
definesPresentationContext = true
}
private func configureSearchBar() {
let searchTextField = searchViewController.searchBar.searchTextField
searchTextField.attributedPlaceholder = NSAttributedString(string: "Search", attributes: [.font: UIFont.Body.medium, .foregroundColor: UIColor.Text.charcoal])
searchTextField.font = UIFont(name: "Poppins-Regular", size: 16)
searchTextField.backgroundColor = UIColor(red: 248 / 255.0, green: 248 / 255.0, blue: 248 / 255.0, alpha: 1)
searchTextField.borderStyle = .none
searchTextField.layer.borderColor = UIColor.black.withAlphaComponent(0.08).cgColor
searchTextField.layer.borderWidth = 1.0
searchTextField.layer.cornerRadius = 8
searchViewController.searchBar.setLeftImage(UIImage(named: "Search"))
searchViewController.searchBar.barTintColor = .clear
searchViewController.searchBar.setImage(UIImage(named: "Filter"), for: .bookmark, state: .normal)
searchViewController.searchBar.showsBookmarkButton = true
searchViewController.searchBar.delegate = self
searchViewController.searchBar.tintColor = UIColor.Brand.popsicle40
}
It creates space between search bar and search view controller like this. How can we remove the space between search bar and search bar controller :
Upvotes: 0
Views: 81
Reputation: 428
Make sure
navigationController.navigationBar.isTranslucent
is set to true
Upvotes: 1