我正在开发一个移动应用程序,但缩放功能有问题。我正在使用 React Native PinchGestureHandler
。它提供了一个scale
参数,定义为:
相对于屏幕坐标中两次触摸点的比例因子
这意味着:两个手指越远,比例因子越大。现在让我们假设我有一个使用这个scale
因子放大的对象。让我们还假设用户想要放大很远并且停止缩放比例因子为5
. 现在我将比例范围存储在一个状态中(在这种情况下prevScaleRange = 4
,因为5 - 1
或lastScaleFactor - inititalScaleFactor
),以便对于下一个捏事件,它不是从比例开始,而是从使用这个公式1
的当前可见比例因子开始:5
newScale = event.nativeEvent.scale + prevScaleRange
但是,当再次缩小事件的比例因子时,从 开始1
,这意味着比例因子的(理论)范围是1
(从1
到0
)。但在“放大”的情况下,范围是4
. 因此,当我现在使用上述公式进行缩小时,用户至少需要四个捏合事件才能达到prevScaleRange = 0
.
不知何故,我无法找到一个公式来调整缩放因子以使缩小事件与放大事件具有相同的速度。有人可以帮忙吗?