可以在iPhone中重新创建用户手势吗?
我正在开发一个应用程序,遇到了一个问题,可以归结为以下情况: 考虑一个带有两个按钮(Butn1,Butn2)和文本视图的超级视图,所有的视图都是它的子视图。当我点击一个按钮时,我会显示文本视图。当我点击文本视图之外的任何地方,但在超级视图中,我需要关闭文本视图 我已经向超级视图添加了一个UITapGestureRecognitor,它调用了一个方法tap:。在点击:,我得到点击的点,如果它在文本视图之外,我关闭文本视图并移除手势识别器。现在,当我点击按钮2时,问题出现了。我需要关闭文本视图并执行按钮2的操作。但它进入了tap:我不希望从那里调用按钮2的方法 我想知道的是,在移除手势识别器后,是否有可能在相同坐标处模拟相同的点击?如果没有,我将如何解决这个问题 编辑 我试过:可以在iPhone中重新创建用户手势吗?,iphone,objective-c,ios,uigesturerecognizer,Iphone,Objective C,Ios,Uigesturerecognizer,我正在开发一个应用程序,遇到了一个问题,可以归结为以下情况: 考虑一个带有两个按钮(Butn1,Butn2)和文本视图的超级视图,所有的视图都是它的子视图。当我点击一个按钮时,我会显示文本视图。当我点击文本视图之外的任何地方,但在超级视图中,我需要关闭文本视图 我已经向超级视图添加了一个UITapGestureRecognitor,它调用了一个方法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事件触地”事件中调用您的方法。回答得好!很抱歉回复太晚,但我暂时没有权限测试这个。但从外观上看,它并不能完全解决我的问题,因为我希望按钮在执行按钮的方法时响应手势识别器。谢谢,但我不希望按钮响应该事件