0

我有一个简单的水平堆栈,包括三个颜色条:

像这样:

当通过手势放大黄色条宽度时,我希望紫色条向右移动以容纳扩展的黄色条,但黄色条只是在紫色条下方扩展(保持在原始位置)。

struct ContentView: View {
@GestureState var scale = CGFloat(1)

var body: some View {
    HStack(spacing: 5) {
        Color(.blue)
            .frame(width: 100, height: 60, alignment: .leading)
        Color(.yellow)
            .frame(width: 100, height: 60, alignment: .leading)
            .scaleEffect(x: scale, y: 1.0, anchor: .leading)

            .gesture(MagnificationGesture()
                .updating($scale, body: { (value, scale, trans) in
                    scale = value
                })

            )
        Color(.purple)
            .frame(width: 100, height: 60, alignment: .leading)
    }
}

}

如何在其组件之一扩展的同时实现 HStack 布局的动态调整?

非常感谢...

罗伯特

4

1 回答 1

1

你可以试试这段代码:

Color(.yellow)
    .frame(width: CGFloat(100) * scale, height: 60, alignment: .leading)
    .gesture(MagnificationGesture()
                .updating($scale, body: { (value, scale, trans) in
                    scale = value
                })
    )
于 2020-10-23T06:54:25.683 回答