我正在尝试使用scaleEffect
and水平缩放视图MagnificationGesture
。它几乎可以按我的意愿工作,ScrollView
只是在其子视图调整大小时不会调整大小。
有解决办法吗?任何解决方案将不胜感激。
重现:
- 运行下面的代码
- 使用捏合手势水平放大图像
- 注意
ScrollView
滚动,好像图像仍然具有相同的大小。
struct ContentView: View {
@State private var currentAmount: CGFloat = 0
@State private var finalAmount: CGFloat = 1
var body: some View {
ScrollView(.horizontal) {
Image(systemName: "star")
.resizable()
.scaledToFit()
.scaleEffect(x: finalAmount + currentAmount, y: 1)
.gesture(
MagnificationGesture()
.onChanged { amount in
self.currentAmount = amount - 1
}
.onEnded { amount in
self.finalAmount += self.currentAmount
self.currentAmount = 0
}
)
}
.frame(maxHeight: 300)
}
}