我想根据内部UITableView
内容大小,在UITableViewCell
内部实现UITableView
动态高度的单元格。我该如何实施这个建议呢?
我希望布局像这样......
代码工作:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let identifier = "OrderHistoryTVCell" let cell: OrderHistoryTVCell! = tableView.dequeueReusableCell(withIdentifier: identifier) as? OrderHistoryTVCell
let tableInnerContentSize = cell.tableInner.contentSize.height
let nn = cell.viewAfterTable.frame.height+tableInnerContentSize
return nn
}
答案 0 :(得分:0)
使用以下内容:
@IBOutlet weak var tableView: UITableView! //connect the table view
//do following in viewDidLoad method
tableView.estimatedRowHeight = 100 //Your estimated height
tableView.rowHeight = UITableViewAutomaticDimension
还可以从故事板的“属性”检查器部分设置UILable的这两个属性:
或者您也可以从代码中设置这些属性:
self.lblxyz.numberOfLines = 0
self.lblxyz.lineBreakMode = .byWordWrapping
注意 - 在表格视图单元格中正确添加约束。
答案 1 :(得分:0)
你必须做这样的事情:
在ui Master-Item #
中是您的部分标题。因此,请将UILabel添加为节标题。
您的子项目是包含一个标签的prtotype-cell
单元格。
单元格内标签的约束。
cell
首先添加UIView
,其中包含以下约束:
superView
0
。UIView
8
。=
到>=
提供身高关系。label
属性行设置为0. 在
中实施这一行//MARK:- TableView
public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat{
return 60 // return header height
}
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// return your section header i.e. master item label
}
public func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat{
return 50;
}
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat{
return UITableViewAutomaticDimension
}
public func numberOfSections(in tableView: UITableView) -> Int{
// return number of section i.e. total count of master item.
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
// returns number of cells in each section
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
// return your custom cell here
//eg:
// cell.labelFood.text = your data
}
注意请勿忘记绑定tableView的delegate
和dataSource
。
答案 2 :(得分:-1)
在viewDidLoad()
中使用此代码editext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
} else {
}
}
});
使用此代表
self.tableView.estimatedRowHeight = 350
self.tableView.rowHeight = UITableViewAutomaticDimension
答案 3 :(得分:-2)
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
self.tableView.estimatedRowHeight = 160
return UITableViewAutomaticDimension
}
同时设置UILable的这两个属性。
@IBOutlet weak var label: UILabel!