Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
如何使我的屏幕仅在我的iOS应用程序中提示用户一条消息后才响应UITouch?_Ios_Uitouch_Touchesbegan_Uievent - Fatal编程技术网

如何使我的屏幕仅在我的iOS应用程序中提示用户一条消息后才响应UITouch?

如何使我的屏幕仅在我的iOS应用程序中提示用户一条消息后才响应UITouch?,ios,uitouch,touchesbegan,uievent,Ios,Uitouch,Touchesbegan,Uievent,我需要使我的屏幕能够响应用户的触摸,但只有在用户通过MBProgressHUD显示的消息提示之后。我意识到我需要实施 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 方法,但正如我所说的,我只需要在用户收到消息提示时才需要这样做,而不是在之前。这可以做到吗?如果可以,怎么做?只需使用一个名为userHasRespondedToMessage的布尔标志。将其设置为“否”,直到用户响应该消息。然后,在您的touch方法

我需要使我的屏幕能够响应用户的触摸,但只有在用户通过MBProgressHUD显示的消息提示之后。我意识到我需要实施

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

方法,但正如我所说的,我只需要在用户收到消息提示时才需要这样做,而不是在之前。这可以做到吗?如果可以,怎么做?

只需使用一个名为userHasRespondedToMessage的布尔标志。将其设置为“否”,直到用户响应该消息。然后,在您的touch方法中,如果布尔值为no,则返回,而不是处理touch。或者您希望启用或禁用tocuhes的任何其他方式。

这取决于您的情况。但是,这里是处理触摸的一般方法。当您需要在视图中启用/禁用触摸时,您需要按如下方式启用/禁用触摸:

BOOL wantWhatTouch = NO.//or yes depend on you
[self.view setUserInteractionEnabled:wantWhatTouch];
上述代码将禁用触摸您的视图

所以,如果现在您想再次启用触摸。当您删除/禁用提示消息时,只需再次启用它…例如,您使用按钮删除/隐藏警报,然后执行以下操作:

[self.view setUserInteractionEnabled:YES];

因此,您会发现您的触控功能再次发挥作用。

感谢您的及时回复。我没想到解决办法会这么简单!嗯,有很多不同的方法可以做到这一点,从简单到复杂。我刚选了一个对你帮助最小的:P