Я изо всех сил пытаюсь создать два вертикальных стержня с помощью линий и приборной коробки. Я хотел бы получить некоторое предложение о том, как это сделать.import SwiftUI
struct LoadManagementItemBarView: View {
let isLeft: Bool
let userWeight: Float
@State var progress: CGFloat
var body: some View {
ZStack(alignment: .bottom) {
Rectangle()
.fill(Color.white)
.frame(width: 32, height: 490)
Rectangle()
.fill(Color.positiveStappone)
.frame(width: 32, height: progress)
VStack {
HStack(alignment: .center) {
if isLeft {
Text("\(String(format: "%.0f", userWeight)) kg")
}
Rectangle()
.frame(width: 38, height: 1)
if !isLeft {
Text("\(String(format: "%.0f", userWeight)) kg")
}
}
.offset(y: CGFloat(userWeight))
Rectangle()
.strokeBorder(style: StrokeStyle(lineWidth: 1, dash: [10]))
.frame(width: 32, height: 188)
.offset(x: isLeft ? 24 : -23, y: -76)
HStack(alignment: .center) {
if isLeft {
Text(" 0 kg")
}
Rectangle()
.frame(width: 38, height: 1)
if !isLeft {
Text(" 0 kg")
}
}
.offset(y: 11)
}
.offset(x: isLeft ? -24 : 23)
}
.shadow(color: .gray, radius: 1, x: 1, y: 1)
}
}
struct LoadManagementItemBarView_Previews: PreviewProvider {
static var previews: some View {
LoadManagementItemBarView(
isLeft: true,
userWeight: 76,
progress: 350
)
}
}
< /code>
Я попытался использовать ZSTACK, чтобы соответствовать всем компонентам пользовательского интерфейса, но я борюсь с смещением этих компонентов, пример, чтобы изменить его смещение y, просто добавив максимум кг к созданному свойству.
Я хочу, чтобы оно выглядело так>
Подробнее здесь: https://stackoverflow.com/questions/756 ... in-swiftui