我有一个水平堆栈,其中包含两个文本:
HStack { Text("text1") Text("text2") }
字符串在某些时候,当我将第一个文本字体更改为粗体时,它显然会调整其大小,并将第二个文本推到右侧。我想避免这种情况。标签可以去第二行肯定,框架可以调整垂直,但我想保持它的水平静态。不知道什么是最好的方式做到这一点?提前致谢
eqqqjvef1#
使用固定宽度:
Group { if bold { Text("text1").bold() } else { Text("text1") } }.frame(width: 50)
字符串如果没有足够的水平空间,文本将自动换行到下一行。或者,将“较小”文本(非粗体文本)作为“较大”文本的覆盖。然后使较大的文本不可见。
if bold { Text("text1").bold() } else { // invisible bold text... Text("text1").bold().opacity(0) .overlay { // ...with the non-bold text as an overlay Text("text1") } }
型这也可以写为:
Text("text1").bold().opacity(bold ? 1 : 0) .overlay { if !bold { Text("text1") } }
型
1条答案
按热度按时间eqqqjvef1#
使用固定宽度:
字符串
如果没有足够的水平空间,文本将自动换行到下一行。
或者,将“较小”文本(非粗体文本)作为“较大”文本的覆盖。然后使较大的文本不可见。
型
这也可以写为:
型