gpt4 book ai didi

ios - UIView 内的 UITableView

转载 作者:行者123 更新时间:2023-11-30 11:19:27 26 4
gpt4 key购买 nike

我正在尝试在 xib 中创建一个动态 UITableView,所以我认为可行的方法是将 TableView 放入空白 UIView 中。然后,我将对此 UIView 进行子类化,并使其遵守 UITableViewDelegate 和 UITableViewDataSource 协议(protocol)。有人可以指导我吗,因为我尝试了很多方法,但没有一个起作用。非常感谢!

编辑:

我将向您展示我之前尝试过的内容(抱歉,没有原始代码):

class TableControllerView: UIView, UITableViewDelegate, UITableViewDataSource {

let tableView = UITableView()

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

tableView.frame = self.frame

tableView.delegate = self
tableView.dataSource = self
}

func tableView(...cellForRowAt...) {
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)

cell.titleLabel?.text = "test title"

return cell
}
}

但在这种情况下,表格 View 最终太大并且与 View 不对齐,即使我将其框架设置为与 View 相同

编辑2:

我的代码现在看起来像这样:

class PharmacyTableView: UIView, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var pharmacyTableView: UITableView!

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//PROVISOIRE depends on user [medications].count
return 2
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: nil)

cell.textLabel?.text = "text label test"
cell.detailTextLabel?.text = "detail label test"

return cell
}}

TableView 已初始化,但仅在高度 anchor 受到约束时才显示,这是我不想要的,因为它可能会根据用户数据而增大或缩小。我想解决这个问题后我就可以完成了吗?附: :另外,非常感谢那些花时间帮助我的人:)

编辑3:

所以,我将 TableView 的类更改为:

class IntrinsicResizingTableView: UITableView {

override var contentSize:CGSize {
didSet {
self.invalidateIntrinsicContentSize()
}
}

override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return CGSize(width: UIViewNoIntrinsicMetric, height: contentSize.height)
}

}

现在一切正常!终于!

最佳答案

你的问题不清楚。根据您的最终陈述,您应该使用以下代码来保持 TableView 及其 super View 对齐。

tableView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

如果这不是您正在寻找的答案,请澄清您的问题。如果您解释一下您这样做的目的也会有所帮助?为什么需要这个 super View ?

关于ios - UIView 内的 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51442614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com