gpt4 book ai didi

ios - Swift 3 NSAttributedString 多个属性

转载 作者:技术小花猫 更新时间:2023-10-29 10:13:41 26 4
gpt4 key购买 nike

刚开始使用 swift 3,我对 swift 语法有疑问。

我正在尝试显示一个简单的 NSAttributedString

所以我首先设置我的属性:

let attributeFontSaySomething : [String : AnyObject] = [NSFontAttributeName : UIFont.fontSaySomething()]
let attributeColorSaySomething : [String : AnyObject] = [NSForegroundColorAttributeName : UIColor.blue]

然后我创建我的字符串:

let attStringSaySomething = NSAttributedString(string: "Say something", attributes: self.attributeFontSaySomething)

我想做的是用我的 2 个属性创建字符串,而不仅仅是一个。但是当我这样做时:

let attStringSaySomething = NSAttributedString(string: "Say something", attributes: [self.attributeFontSaySomething, self.attributeColorSaySomething])

Xcode 告诉我我不能,并希望我将其更改为文字字典。

如何在不使用 NSMutableAttributedString 的情况下使用这两个属性创建字符串?

最佳答案

主要问题是您传递的是一个数组 [attr.. , attr...] 而不是一个字典

您需要将两个词典合并为一个

let attributeFontSaySomething : [String : Any] = [NSFontAttributeName : UIFont.systemFont(ofSize: 12.0)]
let attributeColorSaySomething : [String : Any] = [NSForegroundColorAttributeName : UIColor.blue]

var attributes = attributeFontSaySomething
for (key, value) in attributeColorSaySomething {
attributes(value, forKey: key)
}

let attStringSaySomething = NSAttributedString(string: "Say something", attributes: attributes)

然而,从字面上创建字典可能更容易:

let attributes : [String : Any] = [NSFontAttributeName : UIFont.systemFont(ofSize: 12.0), NSForegroundColorAttributeName : UIColor.blue]

关于ios - Swift 3 NSAttributedString 多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40785692/

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