UITableView底部的奇怪空白空间

问题描述 投票:0回答:3

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
    }

任何建议将被认真考虑。

ios swift uitableview
3个回答
0
投票

您必须为viewForHeaderInSection返回nil

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return nil
}

0
投票

您估计的高度应大于0.将它们设置为近似值。


0
投票

只需将sectionHeaderHeightsectionFooterHeight设置为0即可快速完成。

init(frame: CGRect, presentOn object: AnyObject) {
        super.init(frame: frame, style: .grouped)
        ...
        sectionHeaderHeight = 0
        sectionFooterHeight = 0
        ...
    }
© www.soinside.com 2019 - 2024. All rights reserved.