Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在iPhone中重新创建用户手势吗?_Iphone_Objective C_Ios_Uigesturerecognizer - Fatal编程技术网

可以在iPhone中重新创建用户手势吗?

可以在iPhone中重新创建用户手势吗?,iphone,objective-c,ios,uigesturerecognizer,Iphone,Objective C,Ios,Uigesturerecognizer,我正在开发一个应用程序,遇到了一个问题,可以归结为以下情况: 考虑一个带有两个按钮(Butn1,Butn2)和文本视图的超级视图,所有的视图都是它的子视图。当我点击一个按钮时,我会显示文本视图。当我点击文本视图之外的任何地方,但在超级视图中,我需要关闭文本视图 我已经向超级视图添加了一个UITapGestureRecognitor,它调用了一个方法tap:。在点击:,我得到点击的点,如果它在文本视图之外,我关闭文本视图并移除手势识别器。现在,当我点击按钮2时,问题出现了。我需要关闭文本视图并执行

我正在开发一个应用程序,遇到了一个问题,可以归结为以下情况: 考虑一个带有两个按钮(Butn1,Butn2)和文本视图的超级视图,所有的视图都是它的子视图。当我点击一个按钮时,我会显示文本视图。当我点击文本视图之外的任何地方,但在超级视图中,我需要关闭文本视图

我已经向超级视图添加了一个UITapGestureRecognitor,它调用了一个方法tap:。在点击:,我得到点击的点,如果它在文本视图之外,我关闭文本视图并移除手势识别器。现在,当我点击按钮2时,问题出现了。我需要关闭文本视图并执行按钮2的操作。但它进入了tap:我不希望从那里调用按钮2的方法

我想知道的是,在移除手势识别器后,是否有可能在相同坐标处模拟相同的点击?如果没有,我将如何解决这个问题

编辑 我试过:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

但这并不能解决我的问题

我不知道是否可以在iPhone中重新创建用户手势,但有一种简单的方法可以用来实现您的需求。有一种方法你可以使用它

// called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch. return NO to prevent the gesture recognizer from seeing this touch
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
您可以返回
UIGestureRecognitor
是否应接收触摸,或者换句话说,是否应执行与手势识别器绑定的方法。如果返回
NO
,则触摸将传递到子视图

不要忘记设置手势识别器的
委托
。并在
.h
文件中包含
UIgestureRecognitizerDelegate
协议

您可以检查触摸是否在按钮框内,然后您可以
返回NO
else
返回YES

以下是文档

有一个简单的方法。这工作对我来说很好。请在“uicontrol事件触地”事件中调用您的方法。

回答得好!很抱歉回复太晚,但我暂时没有权限测试这个。但从外观上看,它并不能完全解决我的问题,因为我希望按钮在执行按钮的方法时响应手势识别器。谢谢,但我不希望按钮响应该事件