SwiftUI iOS 14 |在 HStack 中自动展开文本框和内容
Posted
技术标签:
【中文标题】SwiftUI iOS 14 |在 HStack 中自动展开文本框和内容【英文标题】:SwiftUI iOS 14 | auto expand textbox and content around in HStack 【发布时间】:2021-02-25 21:36:02 【问题描述】:ios14更新后,文本框不再展开,箭头不再适应不同长度的文本。 如 gif 所示,文本宽度保持不变,过长的内容会被省略号缩短。你能帮我如何更新我的代码吗?
@State var teamName: [String] = ["blue", "red", "green", "yellow"]
[…]
HStack(spacing: 5)
Image(systemName: "arrowtriangle.left.fill")
.font(Font.system(size: 12 ,weight: .regular))
Text(teamName[selectedLeftTeam])
.font(Font.system(size: 24 ,weight: .bold, design: .monospaced).smallCaps())
Image(systemName: "arrowtriangle.right.fill")
.font(Font.system(size: 12 ,weight: .regular))
.foregroundColor(Color("primaryColor")).opacity(0.2)
.gesture(
DragGesture()
.onChanged(
action in
self.swipeOffsetX = Double(action.translation.width * 0.75)
)
.onEnded(
action in
let left = self.swipeOffsetX < 30
let right = self.swipeOffsetX > 30
if left self.selectedLeftTeam += 1
if right self.selectedLeftTeam -= 1
self.swipeOffsetX = 0 // reset
)
)
【问题讨论】:
【参考方案1】:您可以使用fixedSize
让您的Text
使用尽可能多的空间:
Text(teamName[selectedLeftTeam])
.font(Font.system(size: 24 ,weight: .bold, design: .monospaced).smallCaps())
.fixedSize()
您也可以仅将其限制为一维 - 如果您想横向进行:
.fixedSize(horizontal: true, vertical: false)
【讨论】:
非常感谢。.fixedSize()
完美运行!以上是关于SwiftUI iOS 14 |在 HStack 中自动展开文本框和内容的主要内容,如果未能解决你的问题,请参考以下文章
在 HStack 中有 2 个 List/ScrollView 时,NavigationView 不会折叠 - SwiftUI
如何在 SwiftUI 中嵌入 ForEach 的 HStack 中设置相对宽度?