2016-02-09 7 views
7

kładę paska wyszukiwania wewnątrz tableHeaderView. Wszystko działa dobrze na iPhone 6, ale na iPhone 5s dostaję ten dziwny wynik?searchBar kryciu przez sekcję nagłówka widzenia

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") 
    } 
  • UWAGA: Używam NSFetchedResultController do pobierania danych

enter image description here

+0

ja wciąż stoi ten problem –

Odpowiedz

3

Oto rozwiązanie. Nie nazywaj sizeToFit() po włożeniu paska wyszukiwania w tableHeaderView ale nazywają go wcześniej. Co się do cholery dzieje się za sceną ... Zastanawiam ..

resultSearchController.searchBar.sizeToFit() //Important to call sizeToFit BEFORE adding it to tableHeaderView or you get layout issues 
tableView.tableHeaderView = resultSearchController.searchBar 
+0

nawet po wywołaniu sizeToFit przed dodaniem, jestem w obliczu tego problemu ... –

0

Wydaje się tylko poniżej linii kodu działa ... nic innego nie wydaje się działać teraz.

self.tableView.beginUpdates() 
     // self.tableView.setTableHeaderView(headerView: self.filterView!) 
     //self.tableView.reloadData() 
     self.tableView.layoutIfNeeded() 
     self.tableView.layoutSubviews() 
     self.tableView.endUpdates() 

za każdym razem, gdy zmieniasz rozmiar tabeli lub zmieniasz ograniczenia, musisz zadzwonić pod powyższy kod.

0

Spróbuj może działać

resultSearchController.clipToBounds = true

Można też spróbować tak samo jak

searchControl.searchBar.clipToBounds = true 

myślę, że to działa na kodzie.

Powiązane problemy