2016-04-13 17 views
0

UIView, UITableView ve başka bir UIView içim var. UITableView içinde, bir UISearchController içeren bir başlık var, arama denetleyicisi bir UISearchBar içerir. Sorun şu ki, arama çubuğuna odaklanmaya başladığımda ve textField'ı düzenlediğimde (yani searchController.searchBar.isFirstResponder() olduğunda), kapsam düğmelerinin çıkması, tablo görünümünün ilk sırasının bir bölümünü örtbas etme ve gizleme.TableView üstbilgisi heightForHeaderInSection için dinamik yüksekliği nasıl ayarlayabilirim?

Bu yüzden, headerView yüksekliğini dinamik yapmaya çalışıyorum, böylece arama çubuğu ilk yanıtlayıcı olduğunda onu değiştirebilirim. Aşağıdakileri denedim ama işe yaramıyor:

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
     if searchController.searchBar.isFirstResponder() { 
      return 40.0 
     } 
     else{ 
      return 20.0 
     } 
    } 

Bunu nasıl başarabileceğime dair herhangi bir fikrin var mı? Önceden teşekkür ederiz.

DÜZENLEME: Ben de searchController UISearchController arama çubuğu temsilci dinlemek için

searchController.searchResultsUpdater = self 
searchController.dimsBackgroundDuringPresentation = false 
searchController.searchBar.scopeButtonTitles = ["Groups", "People"] 
tableView.tableHeaderView = searchController.searchBar 
searchController.searchBar.delegate = self 
searchController.searchBar.sizeToFit() 
self.definesPresentationContext = false 

cevap

1

deneyin tanımlarken aşağıdaki ve set o ilk savunan olursa - your_tableView.reloadData call() fonksiyonunu.

+0

Teşekkür ederiz. Bu aslında çalışır, ancak kapsam düğmelerinin göründükleri ve tablo üstbilgisinin yüksekliği görüntülenmediği için, kapsam alanını doldurmadan önce bir saniye kadar gri alanı görebilirsiniz. Bunu düzeltmek için bir fikrin var mı? –

+0

Üzgünüz, söylemesi zor, eğer hala sizin için geçerliyse, screencast veya kısa video sağlayın. –

İlgili konular