gpt4 book ai didi

ios - UITableView.automaticDimension 不工作

转载 作者:行者123 更新时间:2023-11-28 05:47:52 26 4
gpt4 key购买 nike

原型(prototype)单元格(从 Firebase 填充)出现问题,尽管设置了约束,但单元格高度未正确设置。

我试过设置如下:

override func viewDidLoad() {
super.viewDidLoad()

TableViewPVV.rowHeight = UITableView.automaticDimension
TableViewPVV.estimatedRowHeight = 100

}

这是行不通的。使用 UITableView.automaticDimension 时,单元格高度默认为 44。

但是,如果我将 TableViewPVV.rowHeight 显式设置为 100 之类的值,则可以扩展单元格高度。

注意:我还需要明确定义标签的所需宽度,否则指定的 rowHeight 值将被忽略。

另请注意:我在标签上设置了以下约束:到 Superview 的尾随空间 = 2,前导空间 = 2,底部空间 >= 2,顶部空间 >= 2。

部分截图如下:

Nayem:编辑为您添加内容的新图像,无需设置所需的宽度,高度设置为 100。

import UIKit
import Firebase


class PVVViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

var PVVList = [PVVModel]()

@IBOutlet weak var TableViewPVV: UITableView!

override func viewDidLoad() {
super.viewDidLoad()



LoadDataFromPVV()

// TableViewPVV.rowHeight = 100
TableViewPVV.rowHeight = UITableView.automaticDimension
TableViewPVV.estimatedRowHeight = 100

}



func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{

return PVVList.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
//creating a cell using the custom class

let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! PVVViewControllerTableViewCell


//the PVV object
let PVV: PVVModel

//getting PVV for selected position
PVV = PVVList[indexPath.row]

//adding values to labels
cell.PVVData.text = PVV.BodyText

//returning cell
return cell
}


func LoadDataFromPVV() {


databaseReference = Database.database().reference()


let refPVV = Database.database().reference(withPath: "PVV").queryOrdered(byChild: "Status").queryEqual(toValue: "Active")

refPVV.observeSingleEvent(of: .value, with: { (snapshot) in

//if the reference have some values
if snapshot.childrenCount > 0 {

//clearing the list
self.PVVList.removeAll()


//iterating through all the values
for PVV in snapshot.children.allObjects as! [DataSnapshot] {
//getting values
let PVVObject = PVV.value as? [String: AnyObject]
let PVVText = PVVObject?["BodyText"]


//creating PVV object with model and fetched values
let PVV = PVVModel(BodyText: PVVText as! String?)

//appending it to list
self.PVVList.append(PVV)
}

//reloading the tableview
self.TableViewPVV.reloadData()
}

})
}
}

我希望能够动态调整标签 (PVVData) 的高度以适应从 Firebase 捕获的文本。

最佳答案

在大多数情况下,这是约束的问题....请确保您的顶部标签与 contenview 顶部对齐,并且您最底部的标签与 contentView 的底部约束对齐。

看这个例子

enter image description here

关于ios - UITableView.automaticDimension 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54001293/

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