Ios 如何根据内容改变tableview高度
我试图根据内容改变Ios 如何根据内容改变tableview高度,ios,uitableview,swift4,Ios,Uitableview,Swift4,我试图根据内容改变tableview的高度,我做到了,但是tableview下面会有一个标签。每当桌子高度增加或减少时,标签应位于下方。我试过了,但是无论最初给出的桌子高度是多少,标签都是一样的。如果有人能帮我这么做,那就太好了 首先,您必须创建一个滚动视图,并将tableview和标签添加到contentView中。将contentView的高度设置为动态,并将IBOutlet设置为tableView高度约束,如下所示 @IBOutlet var constTableHeight : NSLa
tableview
的高度,我做到了,但是tableview
下面会有一个标签。每当桌子高度增加或减少时,标签应位于下方。我试过了,但是无论最初给出的桌子高度是多少,标签都是一样的。如果有人能帮我这么做,那就太好了
首先,您必须创建一个滚动视图,并将tableview和标签添加到contentView中。将contentView的高度设置为动态,并将IBOutlet设置为tableView高度约束,如下所示
@IBOutlet var constTableHeight : NSLayoutConstraint!
重新加载表格后,设置constTableHeight的值
let heightTBL : CGFloat = (tblView?.contentSize.height)!
constTableHeight?.constant = heightTBL
在viewDidLoad方法中,添加
self.tableView.estimatedRowHeight=44//默认表格视图单元格高度
然后在你的课堂上加上这个
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
如果在代码中使用了,请首先删除以下代码。我们不需要它
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
设置为零。
Boom,完成了。如果您希望表格视图单元格的高度根据其中的标签增加,则必须实现两种类似的方法(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”。添加顶部、前导、底部和尾随页边距
override func viewDidLoad()
{
Tablename.estimatedRowHeight = 100
Tablename.rowHeight = UITableViewAutomaticDimension
}
在Tableview单元格中,不要忘记为单元格的最后一个ui组件提供上、前导、尾随和下边距,以使其大小动态变化。行不清楚->每当表格高度增加或减少时,该标签应位于下方。将该标签添加为表格页脚视图