完成所有行后如何停止uitableview

时间:2016-06-17 12:53:48

标签: ios iphone uitableview constraints

标题可能不太清楚但很难表达,所以我会尽力在这里解释。

看看这张图片:

enter image description here

我希望UITableView在所有行完成后完全停止。在页脚之后的含义应该没有更多的白色视图。

我认为造成这种情况的原因是我所提出的限制因素。但是我需要我的约束来使它在所有可能的尺寸等方面看起来都很好。所以我的问题是如何解决这样的问题?我正在使用SWIFT。

5 个答案:

答案 0 :(得分:1)

这就像一个魅力。感谢@tahavath指点我这个方向

override func viewWillLayoutSubviews() {

    dispatch_async(dispatch_get_main_queue(),{
        //This code will run in the main thread:
        var frame = self.tableView.frame;
        frame.size.height = self.tableView.contentSize.height;
        self.tableView.frame = frame;
    });
}

修改

它确实有效但如果表格比屏幕大,这将是一个问题。当试图在iphone 4s上运行时,它看起来很糟糕。

答案 1 :(得分:0)

因为该表认为有一个页脚要显示,所以它不会显示超出您明确要求的单元格。

viewDidLoad方法

中设置零高度表页脚视图
self.tableView.tableFooterView = UIView(frame: CGRectZero)

或者

tableView.tableFooterView = UIView()

答案 2 :(得分:0)

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.tableFooterView = UIView()
}

答案 3 :(得分:0)

尝试以下代码...... 只需包含以下代码...为您的表格视图提供自动维度。

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
    return UITableViewAutomaticDimension;
}

还在视图加载

的位置添加以下代码
tableView.estimatedRowHeight = 89
tableView.rowHeight = UITableViewAutomaticDimension

答案 4 :(得分:0)

为什么不设置

tableView.backgroundColor = UIColor.clearColor()

然后你设置

cell.backgroundColor = UIColor.whiteColor()

编辑(不是偷偷摸摸的方法)

tableView.frame.size.height = tableView.contentSize.height

但是有一个问题,如果屏幕高度不足以包含tableView内容,那就太糟糕了。

这是正确的方法

tableView.frame.size.height = 
    tableView.contentSize.height > UIScreen.mainScreen().bounds.height ? UIScreen.mainScreen().bounds.height : tableView.contentSize.height