初始目标
黑色矩形),所以我可以开始缩小它,然后在他们在视图上释放时进行注册,所以我可以允许它返回到原始大小。用户仍然需要能够在ScrollView
中正常滚动初始“解决方案”
DragGesture()
的minimumDistance: 0
手势实现了所需的动画。 这通过以下代码实现:
@State private var pressed: Bool = false
var body: some View {
let drag = DragGesture(minimumDistance: 0)
.onChanged({_ in
self.pressed = true
})
.onEnded({_ in
self.pressed = false
})
return ScrollView {
Rectangle()
.frame(minHeight: 100)
.scaleEffect(self.pressed ? 0.5 : 1)
.animation(.easeInOut)
// .onTapGesture(perform: {
// self.pressed.toggle()
// })
.gesture(drag)
}
}
问题
替代
.onTapGesture()
,则可以点击并进行注册,并开始滚动并根据需要将其注册为滚动条这通过以下代码实现:
@State private var pressed: Bool = false
var body: some View {
let drag = DragGesture(minimumDistance: 0)
.onChanged({_ in
self.pressed = true
})
.onEnded({_ in
self.pressed = false
})
return ScrollView {
Rectangle()
.frame(minHeight: 100)
.scaleEffect(self.pressed ? 0.5 : 1)
.animation(.easeInOut)
.onTapGesture(perform: {
self.pressed.toggle()
})
// .gesture(drag)
}
}
问题
GestureMasks
,simultaneousGesture
,LongPressGesture
等,但它们并没有实现我想要的快速响应动画...谢谢!
因此,当用户按下一个视图时,我会得到一个非常好的动画,该动画将在手指下“弹跳”,就像它对触摸做出反应一样。当用户...