SwiftUI拼接Text视图后无法设置文本对齐的问题
解决SwiftUI拼接Text后无法居中对齐的问题
你遇到的问题核心是:用+拼接两个Text视图后,得到的是一个组合视图(类型为some View),而.multilineTextAlignment是单个Text视图专属的修饰符,自然没法直接用在组合视图上。
下面给两种实用的解决方法:
方法一:用Frame包裹组合视图,设置对齐
直接把拼接后的组合视图放进frame里,让frame占满可用宽度,并设置内容居中:
(Text(myText ?? "") .font(Font(myFont)) .kerning(spacing) .foregroundColor(Color(textColor)) + Text(text2 ?? "") .font(Font(myFont)) .foregroundColor(Color(textColor)) .baselineOffset(6) .kerning(spacing)) .frame(maxWidth: .infinity, alignment: .center)
注意必须加外层括号,确保+拼接的优先级高于frame修饰符。
方法二:用容器视图包裹,设置文本对齐
把组合视图放进HStack(或VStack,根据排版需求),然后给容器添加文本对齐修饰符,同时让容器占满宽度:
HStack { Text(myText ?? "") .font(Font(myFont)) .kerning(spacing) .foregroundColor(Color(textColor)) + Text(text2 ?? "") .font(Font(myFont)) .foregroundColor(Color(textColor)) .baselineOffset(6) .kerning(spacing) } .multilineTextAlignment(.center) .frame(maxWidth: .infinity)
两种方法都能实现组合文本的居中效果,可根据你的布局场景选择。
内容的提问来源于stack exchange,提问作者JMD
相关产品推荐
相关产品推荐

