gpt4 book ai didi

ios - 带自动换行的多行标签

转载 作者:行者123 更新时间:2023-11-28 12:31:41 27 4
gpt4 key购买 nike

这看起来很直观,但我一直在尝试让文本停止离开屏幕 45 分钟。这是我的 viewDidLoad():

override func viewDidLoad() {
super.viewDidLoad()
orgTitle.numberOfLines = 0
orgTitle.lineBreakMode = .byWordWrapping
orgTitle.frame.size.width = self.view.frame.size.width - 20
orgTitle.sizeToFit()

orgDesc.numberOfLines = 0
orgDesc.lineBreakMode = .byWordWrapping
orgDesc.frame.size.width = self.view.frame.size.width - 20
orgDesc.sizeToFit()

self.orgTitle.text = self.oTitle
self.orgDesc.text = self.desc
self.orgImage.image = self.image
}

我附上了问题的屏幕截图以及标签的设置。 Label Settings Screenshot of issue

最佳答案

我发现使用约束来设置布局比手动调整框架要容易得多...

但是,如果出于某种原因,您想手动设置标签的框架,我建议您做两件事:

  1. 就像@rmaddy 提到的那样,viewDidLoad 在 View Controller 生命周期中为时过早,因此框架无法正确。尝试覆盖 layoutSubviews并将框架调整移动到该方法中。

  2. 对于 numberOfLines 设置为 0 的 UILabel,您还需要设置标签 preferredmaxlayoutwidth属性来帮助它确定需要多少行(如果使用约束则不需要)。

此外,如果您愿意以 iOS9 及更高版本为目标,UIStackView 是 UIKit 的一个很好的补充,可以帮助实现这种布局,其中 subview 从多行的潜在增加高度中被下推标签。

下面是添加堆栈 View 以容纳 2 个 UILabel 的一些屏幕截图,然后是将堆栈 View 的左、上和右边缘固定到父 View 的约束:

enter image description here

通过 Storyboard中定义的布局,只需设置标签的实际内容,您的 viewDidLoad 就会变得简单得多:

override func viewDidLoad() {
super.viewDidLoad()

self.orgTitle.text = self.oTitle
self.orgDesc.text = self.desc
self.orgImage.image = self.image
}

关于ios - 带自动换行的多行标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970942/

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