gpt4 book ai didi

ios - 在属性标签上获取动态类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:54 26 4
gpt4 key购买 nike

目前我正在做一个项目,我需要让整个应用程序使用动态类型,这意味着应用程序中的所有文本都可以通过手机设置应用程序调整大小。

所有标签在 Attributes Inspector 中都有一个勾号“动态类型 - 自动调整字体”,勾选后标签可以动态调整大小。

请记住,我的应用程序是在 iOS 10 中,所有字体都必须是默认系统字体,所以我可以应用文本样式(标题 1、正文、标注等),然后允许动态调整文本大小.

现在的问题是我有带有属性文本的标签。在我的例子中,我有一个包含 2 种不同颜色的标签,第二种颜色的文本带有下划线。没有获取带有属性标签的动态类型的选项,因此它无法调整大小。

我的临时解决方案是创建 2 个不同的标签,每个标签都有自己的颜色。但第二个必须强调。我不知道如何实现这一目标。我尝试在它下面添加一条线(一个像素高的 UIView),但该线不会随着动态文本大小进行调整,这意味着当我调整文本大小时,该线保持不变。

example image

上面你可以看到我的临时解决方案。文本大小确实使用 2 个不同的标签进行了调整,但下划线保持不变(一个像素高的 UIView)。

关于如何实现这一点有什么建议吗?非常感激。

最佳答案

将您的“联系人”“我们” 单词作为一个NSMutableAttributedString 添加underlineStyle 属性为如下:

    @IBOutlet weak var myLabel: UILabel!

override func viewDidLoad() {
super.viewDidLoad()

let myString = "Contact Us"

let myText = NSMutableAttributedString(string:myString,
attributes: [
.font: UIFontMetrics(forTextStyle: .title1).scaledFont(for: UIFont(name:"HoeflerText-Black", size:18)!,
.underlineStyle:NSUnderlineStyle.single.rawValue)
])

myLabel.attributedText = myText
}

Dynamic Type 与此代码段一起使用可提供您希望的结果; enter image description here

关于ios - 在属性标签上获取动态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471520/

26 4 0