如何僅僅是對(duì)部分字符高亮欲险,不需要點(diǎn)擊萝毛,Group就能實(shí)現(xiàn)
Group{Text(“xxx”) + Text(“yyy”)}
使用Group眉厨,拼成的Text還可以自動(dòng)換行
但是,如果想要對(duì)高亮的字符串進(jìn)行點(diǎn)擊操作孵户,就要用到AttributedString萧朝,下面是一個(gè)簡(jiǎn)單的例子:
var text1: AttributedString {
var text = AttributedString(localized:"登錄即表示同意")
text.foregroundColor = .gray
return text
}
var text2: AttributedString {
var text = AttributedString(localized:"用戶協(xié)議")
text.link = URL(string: "111")
text.foregroundColor = .red
return text
}
var text3: AttributedString {
var text = AttributedString(localized:"和")
text.foregroundColor = .gray
return text
}
var text4: AttributedString {
var text = AttributedString(localized:"隱私協(xié)議")
text.link = URL(string: "222")
text.foregroundColor = .red
return text
}
var text: AttributedString {
text1 + text2 + text3 + text4
}
var body: some View {
VStack {
Text(text)
.environment(\.openURL, OpenURLAction { url in
let path = url.absoluteString
if path.hasPrefix("111") {
print("111...")
} else if path.hasPrefix("222") {
print("222...")
}
return .handled
})
}