2016-05-30 4 views
0

Я пытаюсь добавить представление в свой tableview как tableHeaderView. Я перетаскиваю представление из конструктора интерфейса и переношу его в свой вид таблицы. Размер заголовка небольшой, поэтому я изменяю его размер путем кодирования. Когда я запускаю мое приложение, оно становится, как это:пользовательский столHeaderView скрывает ячейки

Если изменить цвет фона на белый цветenter image description here

Если изменить цвет фона для ясного представления enter image description here

Вот код Я меняю размер заголовка таблицы:

self.myTableView.tableHeaderView?.frame = CGRectMake(0, 0, screenWidth, 290) 

Любое предложение исправить пожалуйста!

+0

вы используете контроллер Tableview или добавление другого подвида в контроллере представления? –

+0

Я использовал различные subview в контроллере вида. – Inuyasha

+0

, поэтому вы должны добавить «заголовок» к новому подвью в верхней части пользовательского интерфейса и добавить табличный вид в нижней части пользовательского интерфейса, который намного лучше. Это означает, что вы не помещаете свой «заголовок» в представление таблицы. –

ответ

0

Создайте xib, который держит вид header view, вы хотите добавить его на TableView. Затем загрузите xib в viewWillAppear метод controller с использованием метода [[NSBundle mainBundle]loadNibNamed:@""]. Теперь добавьте, что NSBundle возвратил изображение как tableView заголовок, используя tv.tableHeaderView = <your UI view>;

0

Используйте это расширение UItableView.

у меня был тот же вопрос

extension UITableView { 

    func setTableHeaderView(headerView: UIView?) { 
     // set the headerView 
     tableHeaderView = headerView 

     // check if the passed view is nil 
     guard let headerView = headerView else { return } 

     // check if the tableHeaderView superview view is nil just to avoid 
     // to use the force unwrapping later. In case it fail something really 
     // wrong happened 
     guard let tableHeaderViewSuperview = tableHeaderView?.superview else { 
      assertionFailure("This should not be reached!") 
      return 
     } 

     // force updated layout 
     headerView.setNeedsLayout() 
     headerView.layoutIfNeeded() 

     // set tableHeaderView width 
     tableHeaderViewSuperview.addConstraint(headerView.widthAnchor.constraint(equalTo: tableHeaderViewSuperview.widthAnchor, multiplier: 1.0)) 

     // set tableHeaderView height 
     let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height 
     tableHeaderViewSuperview.addConstraint(headerView.heightAnchor.constraint(equalToConstant: height)) 
    } 


}