gpt4 book ai didi

ios - UILabel 在启动时不会在自定义 UITableViewCell 中执行多行操作,但会在回滚后执行

转载 作者:可可西里 更新时间:2023-11-01 03:09:25 26 4
gpt4 key购买 nike

编辑#1

我在这里添加了指向github上项目的链接: https://github.com/trestles/testtable

这真的是我第一次处理自动布局,所以我希望我会犯一些业余错误。老实说,我知道我将如何操作框架,但无法通过内容剪辑来正确使用自动布局。部分问题是,如果我们始终处于纵向模式,我是否应该只使用框架?


我有一个自定义的 UITableViewCell,其中有几个 UILabel。它们被设置为 numberOfLines=0。有时,他们会截断文本。像这样:

enter image description here

我该如何解决这个问题?我试图在 viewDidLoad 中重新加载数据,但这似乎并不重要。大多数时候,当您滚动时,它会自行修复(但并非总是如此)。它可以是 UILabel 中的任意三个,并且与文本的数量无关。我第一次将 UILabels 与自动布局一起使用,所以很可能我犯了一些错误。这是我的 UILabel 属性:

enter image description here

和第一个标签的布局:

enter image description here

最佳答案

您的自动布局完美,只是出现问题是因为您正在使用默认文本设置自动布局你的xib。在您的 viewDidLoad 中,您正在更新 UILabel 文本但未以编程方式更新 layout。所以只剩下一行如下。

self.mainTV.layoutIfNeeded();

viewDidLoad 方法中重新加载 UITableView 之前添加上一行。一切正常。

示例:

override func viewDidLoad() {
super.viewDidLoad()

self.mainTV.dataSource=self
self.mainTV.delegate=self
self.mainTV.rowHeight = UITableViewAutomaticDimension
self.mainTV.estimatedRowHeight = 84.0
//self.mainTV.registerClass(MyTableViewCell.self, forCellReuseIdentifier: "MyCustomCell")


var tmps = [String]()

tmps.append("ABC But here is an artist. He desires to paint you the dreamiest, shadiest, quietest, most enchanting bit of romantic landscape in all the valley of the Saco. What is the chief element he employs?")
tmps.append("DEF But here is an artist.")
tmps.append("GHI But here is an artist. He desires to paint you the dreamiest, shadiest, quietest, most enchanting bit")

for var i=0; i<10; i++
{
var menuItem=EKMenuItem()
let randomIndex1 = Int(arc4random_uniform(UInt32(tmps.count)))
menuItem.header = "\(i) \(tmps[randomIndex1])"

let randomIndex2 = Int(arc4random_uniform(UInt32(tmps.count)))
menuItem.detail = "\(i) \(tmps[randomIndex2])"
let randomIndex3 = Int(arc4random_uniform(UInt32(tmps.count)))
menuItem.price = "\(i) \(tmps[randomIndex3])"
//tmpItem.price = "my price"
dataItems.append(menuItem)
}

self.view.backgroundColor = UIColor.greenColor()

self.mainTV.layoutIfNeeded();
self.mainTV.reloadData()
// Do any additional setup after loading the view, typically from a nib.
}

希望对你有帮助。

关于ios - UILabel 在启动时不会在自定义 UITableViewCell 中执行多行操作,但会在回滚后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227092/

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