Screen:multiSwipe()
同时在屏幕上执行最多 10 根手指的滑动。每根手指都按照自身独立的参数在自己的时间轴上运作——按下、移动、保持和抬起。
签名
Screen:multiSwipe(fingers: List<List<SwipePoint>>): void
返回值
void
兼容版本:1.0.0.26 及以上
参数
| 参数 | 类型 | 描述 |
|---|---|---|
| fingers | List<List<SwipePoint>> | 手指路径列表。每条手指路径是一个 SwipePoint 值列表。每根手指至少 2 个点,最多 10 根手指。 |
multiSwipe 中 SwipePoint 的行为
每条手指路径都是一个 SwipePoint(x, y, holdDuration, swipeDuration) 列表。每个参数的含义取决于该点在列表中的位置:
第一个点(起始位置):
swipeDuration— 手指按下前的初始延迟(毫秒)holdDuration— 在起始位置保持多久后再开始移动
后续的点(移动目标):
swipeDuration— 从前一个点移动到该点所用的时间(毫秒)holdDuration— 到达该点后保持多久
最后一个点:
holdDuration— 在最终位置上手指抬起前的收尾保持时间
信息
所有手指会在耗时最长的手指动作完成后一起抬起。
示例
双指上滑
Screen:multiSwipe({
{
SwipePoint(500, 800, 50, 0),
SwipePoint(500, 400, 50, 1000),
},
{
SwipePoint(600, 800, 50, 0),
SwipePoint(600, 400, 50, 1000),
},
})
两根手指在 1 秒内同时向上滑动。
双指缩放
Screen:multiSwipe({
{
SwipePoint(400, 600, 50, 0),
SwipePoint(200, 400, 50, 1500),
},
{
SwipePoint(600, 600, 50, 0),
SwipePoint(800, 800, 50, 1500),
},
})
两根手指在 1.5 秒内从中心向外分开移动。
错开开始并保持
Screen:multiSwipe({
{
SwipePoint(935, 1533, 50, 2000),
SwipePoint(658, 1234, 5000, 2000),
SwipePoint(207, 1372, 50, 2000),
},
{
SwipePoint(794, 1714, 50, 3000),
SwipePoint(240, 1489, 50, 2000),
SwipePoint(694, 1170, 50, 2000),
},
})
时间轴:
| 时间 | 手指 1 | 手指 2 |
|---|---|---|
| 0ms | 等待中(2000ms) | 等待中(3000ms) |
| 2000ms | 在 (935, 1533) 按下 | 等待中... |
| 2050ms | 移动到 (658, 1234) | 等待中... |
| 3000ms | 移动中... | 在 (794, 1714) 按下 |
| 3050ms | 移动中... | 移动到 (240, 1489) |
| 4050ms | 到达,保持 5000ms | 移动中... |
| 5050ms | 保持中... | 到达,保持 50ms |
| 5100ms | 保持中... | 移动到 (694, 1170) |
| 7100ms | 保持中... | 到达,保持 50ms |
| 9050ms | 移动到 (207, 1372) | 等待中... |
| 11050ms | 到达,保持 50ms | 等待中... |
| 11100ms | 所有手指一起抬起 |
限制
- 最多 10 根手指
- 每根手指必须至少有 2 个 SwipePoint 值
- 手势总时长不得超过约 60 秒
- 第一个点的
swipeDuration为0时会被当作1ms处理(即瞬时)