代码之家  ›  专栏  ›  技术社区  ›  JsW

UitableView底部的奇怪空白空间

  •  0
  • JsW  · 技术社区  · 6 年前

    enter image description here

    这个 contentSize 表视图的高度大约比框架高20。 它应该和框架一样,因为我已经关掉了所有相关的东西。

    我在一个而且只有一个部分有三行。每排的高度是46。
    所以总的高度应该是46*3=138。但事实并非如此。

    我真的很困惑。 节的页眉和页脚均为0.001。 表视图继承自 MATableView 其初始值设定项如下。

    class MATableView: UITableView {a
    
        init(frame: CGRect, presentOn object: AnyObject) {
            super.init(frame: frame, style: .grouped)
            delegate = (object as! UITableViewDelegate)
            dataSource = (object as! UITableViewDataSource)
            bounces = false
            backgroundColor = .white
            separatorStyle = .none
            tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0.01))
            tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0.01))
            showsVerticalScrollIndicator = false
            estimatedRowHeight = 0
            estimatedSectionHeaderHeight = 0
            estimatedSectionFooterHeight = 0
            showsVerticalScrollIndicator = false
            if #available(iOS 11.0, *) {
                self.contentInsetAdjustmentBehavior = .never
            }
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    }
    
        // In the delegate controller 
        func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
            return 0.001
        }
        func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
            return 0.001
        }
    

    任何建议都将不胜感激。

    3 回复  |  直到 6 年前
        1
  •  0
  •   koropok    6 年前

    您必须返回nil才能查看headerinsection

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return nil
    }
    
        2
  •  0
  •   Shubham Sharma    6 年前

    您估计的高度应该大于0。将它们设置在近似值附近。

        3
  •  0
  •   JsW    6 年前

    只需设置 sectionHeaderHeight sectionFooterHeight 0 .

    init(frame: CGRect, presentOn object: AnyObject) {
            super.init(frame: frame, style: .grouped)
            ...
            sectionHeaderHeight = 0
            sectionFooterHeight = 0
            ...
        }