我想在视图中的任何对象上模拟鼠标指针和单击事件。到目前为止,我能够模拟鼠标指针,即鼠标指针通过在视图上拖动来移动。现在我想在点击模拟鼠标指针的底层对象上触发tap事件。假设一个按钮。这个概念是关于手指鼠标。
答案 0 :(得分:1)
我找到了你,
1)在鼠标指针上添加UITapGestureRecognizer
。
2)在tapgesture句柄方法中,
得到手指点,
CGPoint fingerlocation = [tap locationInView:self.view];
像这样做一个fingerRect,
CGRect finderRect = CGRectMake(location.x - 5, location.y - 5, 10, 10);
遍历self.view
中的所有uiviews for (UIView *view in self.view.subviews) {
CGRect frameOfTheView = view.frame;
if(CGRectIntersectsRect(frameOfTheView, finderRect)){
NSLog(@"clicked on view %@", view);
return;
}
}
最后方法将是这样的,
-(void) handleTap:(UITapGestureRecognizer *) tap{
//get the tapped point
CGPoint location = [tap locationInView:self.view];
CGRect finderRect = CGRectMake(location.x - 5, location.y - 5, 10, 10);
for (UIView *view in self.view.subviews) {
CGRect frameOfTheView = view.frame;
if(CGRectIntersectsRect(frameOfTheView, finderRect)){
NSLog(@"clicked on view %@", view);
return;
}
}
}
这样您就可以检测到触摸的视图,具体取决于您可以调用所需方法的视图。
答案 1 :(得分:0)
有点黑客攻击并查看KIF测试框架:
https://github.com/square/KIF/blob/master/Additions/UIView-KIFAdditions.m
这是UIView::tapAtPoint
方法&一个_eventWithTouch
方法
在那里查看更多代码..虽然不是所有公开记录的API,但您可能会因此被拒绝:D
答案 2 :(得分:-1)
您是否需要执行此操作以便对iOS应用程序进行自动测试?如果是这样,这个线程很老,但有相关资料的链接。 Stack Overflow 402389
答案 3 :(得分:-2)
你不能直接模拟触摸!!!!这就是测试的原因。你要么做(或运行应用程序,点击并移动),否则。
另外..这叫做触摸,而不是点击