斯威夫特 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)
自从更新到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)