在我的代码中,我将一个子视图添加到每个单元格内的子视图中。每个嵌套的子视图可以具有各种大小。嵌套的子视图不会导致像元增加其高度,因此该子视图已被切断。如何基于嵌套的子视图使单元格的高度增加?
import WSTagsField
class Search {
@IBOutlet weak var searchResultsTableView: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
searchResultsTableView.rowHeight = UITableView.automaticDimension
searchResultsTableView.estimatedRowHeight = 100
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var availableTagsString = ""
var matchingAvailableTagsWithSearch = [String]()
let availableTagsArray = documentKeysWithinRadius[indexPath.row]["available_tags"] as! [String]
for i in 0...availableTagsArray.count - 1
{
if searchTags.contains(availableTagsArray[i])
{
availableTagsString += "\(availableTagsArray[i]) "
matchingAvailableTagsWithSearch.append(availableTagsArray[i])
}
}
availableTagsString = availableTagsString.trimmingCharacters(in: .whitespacesAndNewlines)
let cell : MyCustomCell = self.searchResultsTableView.dequeueReusableCell(withIdentifier: "cell") as! MyCustomCell
let tagsField = MyFunctions().createTagsField(fontSize: 14.0)
//add the view only tags
if (matchingAvailableTagsWithSearch.count > 0)
{
for i in 0...matchingAvailableTagsWithSearch.count - 1
{
tagsField.addTag(matchingAvailableTagsWithSearch[i])
}
}
tagsField.readOnly = true
tagsField.frame = cell.tableCellTagsView.bounds
//tableCellTagsView is a UIView in the prototype cell
cell.tableCellTagsView.addSubview(tagsField)
return cell
}
}
答案 0 :(得分:0)
要调整tableView的大小,您需要为添加的任何视图设置约束,我认为最好的方法是通过挂接top,left,bottom和right约束并使用它来使用垂直stackView
cell.stackTags.addArranagedSubview(tagsField)
并设置高度限制
tagsField.heightAnchor.constraint(equalToConstant:50).isActive = true
如果您添加的元素是具有固有内容大小的
UILabel
/UIButton
,则不需要高度限制
也是这个
tagsField.frame = cell.tableCellTagsView.bounds
由于尚不清楚,因此无法正确获得实际边界,而且帧布局不会调整单元格的大小
此外,还可以通过在单元格子类中实施prepareForReuse
清除所有内容,或者使用以下命令删除所有先前添加的子视图
cell.stackTags.subviews.forEach { $0.removeFromsuperview() }
此行之后
let cell:MyCustomCell = self.searchResultsTableView.dequeueReusableCell(withIdentifier: "cell") as! MyCustomCell
不需要:MyCustomCell