目标:使用SwiftUI在watchOS中绘制文本
对于脚本项目
WKInterfaceLabel通过setAttributedText提供对NSAttributedString的支持,setAttributedText提供对笔划文本的简单和容易的支持。
但是,对于使用SwiftUI的新项目,
WKInterfaceLabel在不存在的故事板之外不可用:
不要自己子类化或创建这个类的示例。相反,在接口控制器类中定义插座,并将它们连接到情节提要文件中相应的对象。
open class WKInterfaceLabel : WKInterfaceObject {
open func setText(_ text: String?)
open func setTextColor(_ color: UIColor?)
open func setAttributedText(_ attributedText: NSAttributedString?)
}
"init()"不可用
那么,我们如何在带有SwiftUI的watchOS中使用NSAttributedString呢?
旁注:
接下来,我希望新的AttributedString能可靠地取代NSAttributedString,但截至watchOS 8和iOS 15,AttributedString是broken and incomplete,这迫使我寻找一种解决方案,在带有SwiftUI的watchOS中使用NSAttributedString。
2条答案
按热度按时间pbossiut1#
最简单的方法是绘制图像:
然后将其与Image()一起使用
iovurdzv2#
在最新的swiftUI中,您可以使用
AttributedString
代替NSAttributedString
。有关如何使用它的详细信息,请参阅Apple文档:https://developer.apple.com/documentation/foundation/attributedstring
但在 Package 原始NSTextField(macos)/ UITextField(IOS)控件的情况下,您仍然可以在swiftUI应用程序中使用NSAttributedString
macos Package 器示例(必须易于重写):
但在大多数情况下,SwiftUI最好使用本地方式--
AttributedString
。