[已解决]swift UITableView中跳动到底部时最下面两行UITableViewCell无法显示

UITableView的UITableViewCell
设置了一共有有13行:
    var rowNumberTotal:Int = 13

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int)
        -> Int {

        return self.rowNumberTotal
    }
然后,UITableView显示的时候,最下面两行,只有手动强制拖动时,才能显示:
tableview scroll to bottom manually show two cell
 但是拖动停止后,最下面两行不显示了:
not scroll bottom two cell not show
搜:
swift UITableView last two cell not show
参考:
去看看当前tableView的高度
        print("self.view.frame=\(self.view.frame)") //self.view.frame=(0.0, 0.0, 375.0, 667.0)
        print("self.view.bounds=\(self.view.bounds)") //self.view.bounds=(0.0, 0.0, 375.0, 667.0)
然后再去上一级页面的view的高度:
结果都是一样的:
        print("self.view.frame=\(self.view.frame)") //self.view.frame=(0.0, 0.0, 375.0, 667.0)
        print("self.view.bounds=\(self.view.bounds)") //self.view.bounds=(0.0, 0.0, 375.0, 667.0)
搜:
swift tableview last two cell not show
swift tableview last cell not show
去调整了frame后,即可:
        print("self.tabBarController?.tabBar.frame=\(self.tabBarController?.tabBar.frame)") //self.tabBarController?.tabBar.frame=Optional((0.0, 618.0, 375.0, 49.0))
        self.view.frame = CGRectMake(0, 0, UIScreen.mainScreen().bounds.width,
            UIScreen.mainScreen().bounds.height //667
                - statusBarFrame.height //20
                - HeightNaviBar //44, Note: can not use naviBarView.frame.height for naviBarView.frame is 0
                - self.tabBarController!.tabBar.frame.height) //49

        print("self.view.frame=\(self.view.frame)")
        //self.view.frame=(0.0, 0.0, 375.0, 667.0)
        //self.view.frame=(0.0, 0.0, 375.0, 554.0)
最后就可以了:
also show bottom two cell for tableview
[总结]
此处默认不用手动滚动到底,TableView底部的两个Cell就不显示的原因是:
当前的TableView的frame默认使用了当前view的frame
但是当前view的frame实际上底部还有个TabBar,占据了一定高度
所以TableView的frame要去掉TabBar的高度,才能正常完全的显示所有的cell。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量