如何根据内容改变桌子的高度

时间:2019-04-01 07:27:27

标签: ios uitableview swift4

我尝试根据内容改变tableview的高度,但是我做到了,但是在tableView之下的东西会有label。每当工作台高度增加或减少时,该label都应低于此高度。我试过了,但是label处于初始提供的桌子高度。如果有任何帮助,这样做会很棒。

enter image description here

5 个答案:

答案 0 :(得分:0)

首先,您必须进行滚动视图,然后将tableview和标签添加到contentView中。设置contentView的高度为动态,并将IBOutlet设置为tableView高度约束,如下所示。

@IBOutlet var constTableHeight : NSLayoutConstraint!

重新加载表后,设置constTableHeight的值

let heightTBL : CGFloat = (tblView?.contentSize.height)!
constTableHeight?.constant = heightTBL 

答案 1 :(得分:0)

在您的viewDidLoad方法中,添加

self.tableView.estimatedRowHeight = 44 //默认表格视图单元格高度

然后将其添加到您的班级中

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

答案 2 :(得分:0)

如果您已在代码中使用过,请首先删除以下代码。我们不需要它。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50
}

接下来,在设置UITableViewCell时,请确保未设置高度限制之一。这是标题和说明的示例。

    /*  Setup title label  */
    NSLayoutConstraint.activate([
        titleLabel.topAnchor.constraint(equalTo: topAnchor, constant: 0),
        titleLabel.leftAnchor.constraint(equalTo: leftAnchor, constant: 10),
        titleLabel.rightAnchor.constraint(equalTo: rightAnchor, constant: -10),
        titleLabel.heightAnchor.constraint(equalToConstant: 40)
        ])

    /*  Setup description label  */
    NSLayoutConstraint.activate([
        descriptionLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 0),
        descriptionLabel.leftAnchor.constraint(equalTo: titleLabel.leftAnchor, constant: 0),
        descriptionLabel.rightAnchor.constraint(equalTo: titleLabel.rightAnchor, constant: 0),
        descriptionLabel.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 0)
        ])

不要忘记将numberOfLines的{​​{1}}设置为零。 繁荣,您完成了。

答案 3 :(得分:0)

如果您希望基于其中的标签来增加表格视图单元格的高度,则必须实施这样的几种方法( Swift 4

1-此方法告诉单元格自动增加您的身高

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableView.automaticDimension
    }

2-任意估算行高140

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        return 140
    }

3-当您将标签放置在单元格中时,请确保行数为“ 0”。在其中添加顶部,顶部,底部和尾部页边距。

答案 4 :(得分:0)

  override func viewDidLoad()    
    { 
        Tablename.estimatedRowHeight = 100  
        Tablename.rowHeight = UITableViewAutomaticDimension
     }

在Tableview单元格中,请不要忘记为单元格的最后一个ui组件提供顶部,前导,尾随和底部边距,以使其大小动态。