gpt4 book ai didi

ios - 添加 subview 后自动调整单元格大小

转载 作者:行者123 更新时间:2023-11-29 11:44:06 25 4
gpt4 key购买 nike

我正在创建一个包含自定义单元格的表格 - 在表格的最后一个单元格中,我需要将 UItextField 更改为 UILabel - 我正在使用这段代码在 cellForRowAt 中:

case "Notes":
if viewing == true {
for subview in cell.contentView.subviews {
if subview.description.contains("UITextField") {
let newField = UILabel()
cell.contentView.addSubview(newField)

newField.frame = cell.infoField.frame
newField.text = profileToShow.notes
newField.font = cell.infoField.font
newField.addConstraints(cell.infoField.constraints)
newField.lineBreakMode = NSLineBreakMode.byWordWrapping

for constraint in cell.infoField.constraints {
cell.infoField.removeConstraint(constraint)
}

cell.infoField.isHidden = true
newField.numberOfLines = 0
}
}
}
break

我正在检查单元格是否是正确的单元格,添加标签并隐藏 UITextField,一切正常。但是,当我运行程序时,标签会调整大小以适合线条,但单元格不会调整大小以适合标签。我需要更改什么才能使用添加的标签调整此单元格的大小,我已经在使用 UITableViewAutomaticDimension

最佳答案

尝试更改 cellForRowAtIndexPath 中的顺序并在添加约束后添加 layoutIfNeeded

case "Notes":
if viewing == true {
for subview in cell.contentView.subviews {
if subview.description.contains("UITextField") {
let newField = UILabel()
cell.contentView.addSubview(newField)

newField.frame = cell.infoField.frame
newField.numberOfLines = 0
newField.font = cell.infoField.font
newField.addConstraints(cell.infoField.constraints)
newField.lineBreakMode = NSLineBreakMode.byWordWrapping

for constraint in cell.infoField.constraints {
cell.infoField.removeConstraint(constraint)
}

cell.infoField.isHidden = true
newField.text = profileToShow.notes
cell.layoutIfNeeded()
}
}
}
break

关于ios - 添加 subview 后自动调整单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44905575/

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