ios - 如何调整uitableview的标题?
问题描述
我有一个 uitableview
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let width = tableView.frame.width - CGFloat((start*2))
let headerView = UIView()
headerView.frame.origin.x = 0
headerView.frame.origin.y = -45
headerView.frame.size.width = tableView.frame.width
let desc = UILabel()
desc.frame.origin.x = label.frame.origin.x
desc.frame.origin.y = line.frame.maxY + 10
desc.frame.size.width = width
desc.numberOfLines = 0
desc.font = UIFont(name: "Lato-Regular", size: 17);
desc.textColor = UIColor(red: 0.53, green: 0.53, blue: 0.53, alpha: 1.00)
desc.text = self.data.desc
desc.backgroundColor = UIColor.clear
desc.textAlignment = .left
desc.adjustsFontForContentSizeCategory = true
if (loadMoreDesc) {
desc.sizeToFit()
} else {
desc.frame.size.height = 110
}
headerView.addSubview(desc)
let moreButtonDesc = UIButton(frame: CGRect(x: desc.frame.minX, y: desc.frame.maxY, width: 80, height: 15))
moreButtonDesc.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center
moreButtonDesc.titleLabel?.textAlignment = .left
if (loadMoreDesc) {
moreButtonDesc.setTitle("Less", for: .normal)
} else {
moreButtonDesc.setTitle("More", for: .normal)
}
moreButtonDesc.titleLabel?.font = UIFont(name: "Lato-Regular", size: 15);
moreButtonDesc.setTitleColor(UIColor(red: 0.00, green: 0.48, blue: 1.00, alpha: 1.00), for: .normal)
moreButtonDesc.addTarget(self, action:#selector(self.expandDesc(sender:)), for: .touchUpInside)
headerView.addSubview(moreButtonDesc)
当人们点击“更多”按钮时,描述应该展开并且表格视图标题的高度应该增加以适合描述(desc)。我怎样才能做到这一点?这是我的 expandDesc 函数
@objc func expandDesc(sender: UIButton) {
loadMoreDesc = !loadMoreDesc
tableView.reloadData()
}
请注意,描述是动态高度。除非我知道描述的高度,否则我不会知道为标题设置的高度。
解决方案
请你试试这个
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if loadMoreDesc {
return 100
} else {
return 50.0
}
}
推荐阅读
- javascript - 错误:检查输入时出错:预期 dense_Dense1_input 具有 3 个维度。但得到了形状为 1,9 的数组
- php - 带有组和关系的 Symfony 序列化
- tensorflow-federated - 如何使用 TFF 进行预测?
- javascript - axios 在 API vuejs 中获取 id
- javascript - PHP - 无法同时注销并显示警报消息
- macos - Big Sur - 鼠标错误 - 光标和指针不匹配
- reactjs - 部署在 Google Cloud Run 上的 ReactJS 应用程序,加载大约需要 20 秒
- html - 如何在wordpress中单行显示面包屑?
- python - 启动带有额外变量的工作流模板
- java - org.mockito.exceptions.misusing.unfinishedstubbingexception powerMockito