我想让点击gesture识别器附加到一个UIView,并触发它的编程。我成功地找到了一种查找UIView的点击手势识别器的方法。但现在我不知道怎么用程序触发它。我正在开发应用程序crawler。因此,如果我有一个ViewController的源代码,那么我的爬虫就会开始爬行找到所有的subviews of ViewController。此外,爬虫将发现gesture附加到subviews。并触发点击gesture。
注意:我知道如何将手势识别器附加到UIView并触发它。但在我的例子中,我想让应用程序的点击过程自动化。只需考虑一下,因为我希望运行时找到UIView的抽头手势识别器并触发它。
发布于 2016-09-02 08:14:34
我通过制造假触摸来解决这个问题。触发手势是不可能的,因为手势不公开其动作和选择器。但由于我有UIView,我想点击。我可以在那个UIView上做一个假的触摸。这种假触摸将自动触发轻触手势。这链接对此非常有用。
发布于 2016-08-30 06:48:54
你不能,因为这个手势不会暴露它的目标和动作。您需要创建一个子类来访问这些值,或者使用一些私有API来访问这些值,以便您可以使用它们。如果您要创建一些通用的东西,那么子类选项无论如何都是不好的,但是更广泛地说,并不是所有的东西都与手势一起工作,所以解决方案是不完整的。
我认为大多数测试工具都使用可访问性接口来查找交互式视图并以编程方式访问它们。
发布于 2016-08-30 06:49:47
技术狂兄弟一般都是手势说
手势实际上是发生在屏幕某一特定区域的一个或多个手指的触摸和移动,在屏幕上存在感兴趣的视图。
当涉及到抽头手势识别器
UITapGestureRecognizer:这个类使用在视图上所做的点击手势。它可以用来处理单个或多个水龙头,无论是用一个或多个手指。点击是用户最常用的手势之一。
如果没有手指的帮助,你就不能自动完成,兄弟。
所以我们的代码
- (void)viewDidLoad
{
UITapGestureRecognizer *tapgesture =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapView:)];
tapgesture.numberOfTouchesRequired=1;
[self.view addGestureRecognizer:tapgesture];
}
-(void)tapView:(UITapGestureRecognizer *)gesture
{
NSLog(@"The taped tag view is - %ld",gesture.view.tag);
}https://stackoverflow.com/questions/39220214
复制相似问题