SwiftUI中Text组件无法显示三种颜色且出现多余字符如何解决
问题根因
你所使用的在Text字符串插值中嵌套其他Text视图实现富文本拼接的语法,是SwiftUI在iOS 15及更高版本才推出的特性。你的项目适配iOS 14,在iPadOS 14.1设备上运行时,系统无法正确解析这种语法,就会出现渲染异常,输出多余的意外字符。
适配iOS 14的解决方案
iOS 14下拼接不同样式的Text,直接使用+运算符拼接多个Text实例即可,修改后的代码如下:
let aString = "A" let bString = "B" let cString = "C" import SwiftUI struct ContentView: View { var body: some View { ( Text(aString).foregroundColor(.black) + Text(bString).foregroundColor(.gray) + Text(cString).foregroundColor(.red) ) .padding() } }
这种写法可以同时兼容iOS 14和更高版本的系统,运行后可以正确显示A为黑色、B为灰色、C为红色的ABC文本效果,不会出现多余字符。
内容的提问来源于stack exchange,提问作者oOEric
相关产品推荐
相关产品推荐

