斯威夫特 iOS 14 |自动扩展 HStack 中的文本框和内容

SwiftUI iOS 14 | auto expand textbox and content around in HStack

自从更新到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
                        })
                        )

您可以使用 fixedSize 让您的 Text 使用尽可能多的 space:

Text(teamName[selectedLeftTeam])
    .font(Font.system(size: 24 ,weight: .bold, design: .monospaced).smallCaps())
    .fixedSize()

您也可以将其限制为仅一维 - 如果您想水平进行:

.fixedSize(horizontal: true, vertical: false)