gpt4 book ai didi

ios - 如何使 UIView 匹配 UILabel 的大小

转载 作者:行者123 更新时间:2023-11-29 02:48:13 24 4
gpt4 key购买 nike

我有一个 UILabel,它应用了自动布局,并且更改了它的 preferredWidth 以确保它的格式正确。我希望 UIView 在它的“下方”并匹配标签的大小。将 UIView 的 frame.size 设置为 label.frame.size 不起作用,因为它不考虑正在发生的自动布局。

我在想一定有一种方法可以匹配 UILabel 的约束,然后再调整大小。但是我认为这行不通,因为 UILabel 的格式与单独的 UIView 无关。

注意:文本在过去的运行时是已知的,因为它依赖于来自网络服务器的信息。

相关代码:

override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView!.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MessageTableViewCell

cell.messageLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
cell.messageLabel.numberOfLines = 0

cell.messageLabel.preferredMaxLayoutWidth = cell.frame.size.width - 35
preferredWidth = cell.messageLabel.preferredMaxLayoutWidth

cell.messageLabel.text = friends[indexPath!.row]
cell.messageLabel.sizeToFit()
cell.messageLabel.setNeedsDisplay()

//cell.msgBubble.frame.size.width = preferredWidth
//cell.msgBubble.

cell.msgBubble.layer.masksToBounds = true
cell.msgBubble.layer.cornerRadius = 10.0

return cell
// Configure the cell...
}

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {

var sampleLabel = UILabel()
sampleLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
sampleLabel.numberOfLines = 0
sampleLabel.preferredMaxLayoutWidth = preferredWidth

sampleLabel.text = friends[indexPath!.row]
sampleLabel.sizeToFit()
sampleLabel.setNeedsDisplay()

return sampleLabel.intrinsicContentSize().height + 10

}

最佳答案

我假设您已经为标签添加了足够的约束。现在我们需要为 View 添加约束以根据标签调整大小。

同时选择标签和 View ,您可以在 Xcode 的侧边栏中进行。 (cmd + 鼠标点击)

enter image description here

然后添加约束。您可以输入任何您喜欢的值。如果收到警告,您可以更新框架或更新约束。

enter image description here

关于ios - 如何使 UIView 匹配 UILabel 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846981/

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