多点触控滑动手势

时间:2012-10-15 03:52:41

标签: iphone ui-automation

如何在UIAutomation中的UITextView中模拟从左到右的双指滑动?

我试过这个:

var textView = target.frontMostApp().mainWindow().textViews()[0];
textView.dragInsideWithOptions({
    touchCount:2,
    startOffset:{x:0.2, y:5.80},
    endOffset:{x:0.8, y:5.80},
    duration:1.5
});

但显然它没有任何效果。有时看起来它只做一个手指手势,即使我将2作为触摸计数。

一个问题是:UIAutomation如何知道第二次触摸的位置?我只指定一次触摸的开始和结束,而不是两次。它是否正确?也许这是我问题的根源?
另外,我还不是很清楚对象的坐标系。除非我为x传递非常小的值,否则我通常会收到警告:越界。传递坐标我通常使用Objective-C传递似乎很大:(

1 个答案:

答案 0 :(得分:1)

答案很晚...... 我今天在2015年遇到了你的问题,我有机会获得Apple doc这个功能。 2012年的情况可能不是......

Apple文档说:

  

您可以使用偏移来在指定元素的rect中指定命中点时获得更精确的精度。偏移包括一对x和y值,每个值的范围从0.0到1.0。这些值分别代表rect中的相对水平和垂直位置,左上角为{x:0.0,y:0.0},右下角为{x:1.0,y:1.0}。因此,{x:0.3,y:0.6}指定中心下方和左侧的位置,{x:1.0,y:0.5}指定最右侧垂直居中的位置。

     

此示例在目标元素中从左边缘到右边缘执行慢速拖动,就在顶部下方:

     

target.dragInsideWithOptions({startOffset:{x:0.0,y:0.1},endOffset:{x:1.0,y:0.1},持续时间:1.5});

因此x和y值在您选择的矩形内是相对的。 在您的示例中:

startOffset:{x:0.2, y:5.80}

您开始在文本视图中从左侧滑动20%的长度,y是超出边界的5.80倍...

最好使用以下值:

startOffset:{x:0.0, y:0.1}, endOffset:{x:0.5, y:0.1}

就我而言,我使用此代码从左到右滑动两个手指:

target.frontMostApp().mainWindow().dragInsideWithOptions({touchCount:2, startOffset:{x:0.0, y:0.1}, endOffset:{x:0.5, y:0.1}, duration:1});