2016-06-11 3 views
0

Я только что попробовал строки под кодом, но я не работает правильно. Интересно, как я могу предоставить этот случай для заголовка или нижнего колонтитула программно, может быть использование автоопределения. Я точно не знаю, какая из них решила мою проблему. Я использую файл xib как UITableViewHeaderFooterView.Swift - Как динамически фиксируется размер UITableViewHeaderFooterView?

Если кто-то объяснит, что я был бы здорово.

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    // Dynamic sizing for the footer view 
    if let footerView = tableView.tableFooterView { 
     let height = footerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height 
     var footerFrame = footerView.frame 

     if height != footerFrame.size.height { 
      footerFrame.size.height = height 
      footerView.frame = footerFrame 
      tableView.tableFooterView = footerView 
     } 
    } 

} 
+0

Пробовали ли вы этот код в viewWillLayoutSubviews? – srvv

ответ

2

UITableView вычисляет HeaderFooter, прежде чем они отображаются, вы не можете обновить эту высоту, не вызывая reloadData снова().

Вы пытались использовать AutoLayout для этих HeaderFooterViews? я бы настроить вид из XIb с правом ограничения, а затем:

self.tableView.estimatedSectionHeaderHeight = 100 
self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension 
+0

IOS 8 не может быть реализован – ChildrenGreens

+0

@ChildrenGreens, что вы подразумеваете под этим? – orxelm

+0

iOS8 ограничения конфликт, iOS9, iOS10 может отображаться правильно – ChildrenGreens

Смежные вопросы