-3

我想在视图中的任何对象上模拟鼠标指针和单击事件。到目前为止,我能够模拟鼠标指针,即鼠标指针通过在视图上拖动来移动。现在我想在单击模拟鼠标指针的基础对象上触发点击事件。假设一个按钮。这个概念是关于手指鼠标的。

4

4 回答 4

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 中的所有 uiview

  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;
        }

    }

}

这样您就可以检测到被触摸的视图,具体取决于您可以调用所需方法的视图。

于 2013-04-25T13:05:04.873 回答
0

稍加修改并查看 KIF 测试框架:

https://github.com/square/KIF/blob/master/Additions/UIView-KIFAdditions.m 这里是一个UIView::tapAtPoint方法&一个_eventWithTouch方法

在那里查看更多代码 .. 它并不是所有公开记录的 API,因此您可能会因此而被拒绝:D

于 2013-04-25T12:54:12.063 回答
-1

您是否需要这样做才能运行 iOS 应用程序的自动化测试?如果是这样,这个线程很老,但有相关材料的链接。 堆栈溢出 402389

于 2013-04-25T12:03:03.443 回答
-2

你不能直接模拟触摸!!!!这就是为什么会有测试之类的东西。您要么执行此操作(运行应用程序,单击并移动),要么不执行。

另外..它被称为触摸,而不是点击

于 2013-04-25T12:03:19.767 回答