UITableViewDelegate methods not called after Swift 3.0 and Xcode 8 migration

前端 未结 3 1076
予麋鹿
予麋鹿 2021-01-19 09:10

After migrating my codebase from Swift 2.2 to Swift 3.0, I noticed that my UITableView footer did not show up. It turns out that none of my UITableViewDe

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-19 09:39

    After I checked your sample project:

    You didn't did anything wrong, but referring to viewForFooterInSection, it will not get called until you implement heightForFooterInSection method:

    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 50 // for example
    }
    

    Similar Cases:

    No implementing for heightForHeaderInSection ==> No calling for viewForHeaderInSection even if it's implemented.

    Returning numberOfRowsInSection as zero ==> No calling for cellForRowAt even if it's implemented.

    Additional Note: you don't have to add tableView.dataSource = self and tableView.delegate = self in viewDidLoad(), they have been set in the interface Builder.

提交回复
热议问题