I put the searchBar inside the tableHeaderView. Everything works fine on iphone 6 but on iphone 5s I get this weird result?
override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self tableView.sectionIndexColor = Constants.Colors.ThemeGreen tableView.sectionIndexBackgroundColor = UIColor.clearColor() tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() tableView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(Constants.Dimensions.TabBarHeight), 0) resultSearchController = UISearchController(searchResultsController: nil) resultSearchController.searchResultsUpdater = self resultSearchController.dimsBackgroundDuringPresentation = false resultSearchController.definesPresentationContext = true tableView.tableHeaderView = resultSearchController.searchBar resultSearchController.searchBar.sizeToFit() //Fetch data for the first time do{ try fetchedResultsController.performFetch() listHeaderView?.count = "\(fetchedResultsController.fetchedObjects!.count)" }catch{ print("Error - Couldn't fetch list") }
- NOTE: I'm using a NSFetchedResultController to retrieve the data
4 Answers
Answers 1
Here is the solution. Don't call sizeToFit() AFTER putting the searchBar in tableHeaderView but call it BEFORE. What the hell is going on behind the scene... I wonder..
resultSearchController.searchBar.sizeToFit() //Important to call sizeToFit BEFORE adding it to tableHeaderView or you get layout issues tableView.tableHeaderView = resultSearchController.searchBar
Answers 2
It seems only below line of code does work ... nothing else seems to work right now.
self.tableView.beginUpdates() // self.tableView.setTableHeaderView(headerView: self.filterView!) //self.tableView.reloadData() self.tableView.layoutIfNeeded() self.tableView.layoutSubviews() self.tableView.endUpdates()
everytime your table resize or change constraints you need to call above code.
Answers 3
@mihir mehta
You can also try the same as
searchControl.searchBar.clipToBounds = true
I think it works for your code.
Answers 4
Try this it may work
resultSearchController.clipToBounds = true
You can also try the same as
searchControl.searchBar.clipToBounds = true
I think it works for your code.
0 comments:
Post a Comment