问题标签 [gesture-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
378 浏览

swift - SwiftUI:如何在没有属性包装器的情况下添加手势状态?

如何在 @GestureState 和 squanced 手势更新修饰符之间添加没有属性包装器/中间体的手势状态。

在绑定的情况下,我们可以这样做:

然后

如何用@GestureState 实现这样的功能来拦截它的值变化?我需要它,因为在长按后拖动的情况下,我没有调用回调来从 .pressing 更改为 .inactive 状态(如 Apple 示例中)

0 投票
1 回答
497 浏览

ios - SwiftUI 中 @GestureState 的显式动画

我正在学习 SwiftUI 作为一种爱好,我正在尝试使用@GestureState如下所示创建一个可拖动的矩形视图。当视图被拖动时,我想为角和阴影半径的变化设置动画。Apple 文档中的示例对阴影部分使用了隐式动画,并删除了偏移修改器上方的所有动画。但是,因为我还想为圆角半径设置动画,所以我认为我需要明确地进行。这是我的第一次尝试:

}

不幸的是,我遇到了两个问题。

  1. dragState设置回初始.inactive值时,更改不会动画:

屏幕录制:dragState 重置

  1. 当手势序列被突然打断时,影子表现得很奇怪:

屏幕录制:打断手势

任何想法如何解决这一问题?先感谢您。

0 投票
0 回答
68 浏览

animation - 取消长按时的动画问题 - SwiftUI,iOS 14.5

我仍在学习并尝试了解 swiftUI 的来龙去脉。目前,我专注于理解手势和动画,这里有一个在我的经验水平上似乎无法解决的问题:

问题: 如果取消 longPressGesture,我会遇到意外行为,例如。在超过 longPress 的 minimumDuration 之前抬起手指。

取消进度条动画问题

预期结果: 在上面的示例中,您看到我长按 2 次,然后取消长按一次。如果取消 longPress,我希望红色进度条再次缩小并保持其位置居中。但是正如你所看到的,进度条改变了它的位置。

是什么导致了这个问题以及如何在仍然使用 swiftUI 和 GestureState 的同时解决它

这是代码:

非常感谢,非常感谢任何帮助或提示。