基于行数问题的表格视图宽度
Posted
技术标签:
【中文标题】基于行数问题的表格视图宽度【英文标题】:Table view width base on number rows issue 【发布时间】:2021-12-29 02:18:29 【问题描述】:我对高度表视图有疑问,例如,如果我在表视图中有 3 行并且每行有 50 ,则表视图将为 150(我在表视图中有一个表视图,问题出在第二个表),对于两个表视图单元格,我从 xib 加载自定义单元格,我在表视图单元格内附加一个 xib 这是我的第一个表格视图
这是第一个表视图的xib,第二个表视图在里面,我设置底部关系大于或等于
这是第一个查看代码:
class QuestionList: UIView
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var tableViewHC: NSLayoutConstraint!
required init?(coder: NSCoder)
super.init(coder: coder)
commonInit()
setTableView()
func commonInit()
let viewFromXib = Bundle.main.loadNibNamed("QuestionList", owner: self, options: nil)![0] as! UIView
viewFromXib.frame = self.bounds
questionLabel.normalGray()
addSubview(viewFromXib)
func setTableView()
tableView.delegate = self
tableView.dataSource = self
let nib = UINib(nibName: "AnswerListTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "answerListCell")
tableView.isScrollEnabled = false
tableView.rowHeight = UITableView.automaticDimension
tableViewHC.constant = CGFloat(150 * 3)
extension QuestionList: UITableViewDelegate, UITableViewDataSource
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
return UITableView.automaticDimension
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 3
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "answerListCell", for: indexPath) as! AnswerListTableViewCell
cell.separatorInset.right = cell.separatorInset.left
cell.answerList.optionLabel.text = "Text Text"
return cell
这是第二个表格视图的第二个 xib
这是第二个查看代码:
class AnswerList: UIView
@IBOutlet weak var optionSwitch: UISwitch!
@IBOutlet weak var optionLabel: UILabel!
required init?(coder: NSCoder)
super.init(coder: coder)
commonInit()
func commonInit()
let viewFromXib = Bundle.main.loadNibNamed("AnswerList", owner: self, options: nil)![0] as! UIView
viewFromXib.frame = self.bounds
optionLabel.normalGray()
addSubview(viewFromXib)
这是我的输出:
【问题讨论】:
【参考方案1】:如果您希望 tableview 高度是它的内容,请在 viewDidLayoutSubviews
中计算
override func viewDidLayoutSubviews()
tabelView.height = tableView.contentSize.height
【讨论】:
【参考方案2】:你想要解决这个问题是一个更高的 tableView 吗? 如果是这样,您可能可以将 tableView 的 heightEquals 更改为大于当前 = 160 的值。
您还可以计算并将 tableView 设置为不同的高度,如下所示:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
return 80
【讨论】:
不,我想在行@JohnKasich_2016 实现高度动态没有动态高度的表格视图 @LgSus97 :检查我的答案。希望这就是你要找的……以上是关于基于行数问题的表格视图宽度的主要内容,如果未能解决你的问题,请参考以下文章