Ios UIActivityIndicatorView旋转时禁用所有输入
当Ios UIActivityIndicatorView旋转时禁用所有输入,ios,cocoa-touch,uiactivityindicatorview,Ios,Cocoa Touch,Uiactivityindicatorview,当UIActivityIndicatorView旋转时,如何禁用所有输入 谢谢启动微调器时,您可以调用BeginIngnoringInteractionEvents [[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 当您停止时,endIgnoringInteractionEvents [[UIApplication sharedApplication] endIgnoringInteractionEvents
UIActivityIndicatorView
旋转时,如何禁用所有输入
谢谢启动微调器时,您可以调用
BeginIngnoringInteractionEvents
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
当您停止时,endIgnoringInteractionEvents
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
只需确保您的代码始终处于调用
endIgnoringInteractionEvents
的位置,否则您的应用程序将冻结(从用户的角度来看)。只是rokjarc答案的一个补充。
下面是一个让应用程序保持活动状态的看门狗示例。
您可以随时以某个关键间隔(可能是10秒)拨打电话。
如果您需要在10秒内启用,只需调用“enable”方法
在Swift 3.0中:
要禁用交互,请执行以下操作:
UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()
要恢复交互,请执行以下操作:
UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()
在Swift 5中:
// activity indicator starts
view.isUserInteractionEnabled = false
...
// activity indicator stops
view.isUserInteractionDisabled = true
如果您将微调器添加到UIAlertView,然后显示该警报,则这将实现您所追求的目标。您也可以使用微调器获得不错的效果,但根据您试图实现的目标,微调器可能会更重。感谢Luke,如果我希望UIAlertView解除锁定,我如何“销毁”它。有0个按钮可以吗?没有按钮完全可以。只需调用[someAlertView Dismiss with Clicked Button索引:0动画:是];请浏览此链接[有关于此主题的详细对话][1][1]:谢谢,工作正常。但正如我所看到的,视图确实“记住”了一次触摸,并在endIgnoreInteractionsEvent之后触发了事件。这种行为可以改变吗?@mica:哇,这是一个有趣的观察结果——我以前没有注意到过。我来看看。如果您赶时间,您可以hijaack应用程序主窗口的
sendEvent:
,然后在那里决定(即,如果微调器正在设置动画或未设置动画,则通过检查某种标志)是否将事件发送到响应器链或忽略它。一种方法是(答案是MyKindOfWindow
definition)。@mica:看起来你发现了一个bug。根据这一点,不应该发生:“在一段时间内关闭触摸事件的传递。应用程序可以调用UIApplication方法beginIgnoringInteractionEvents,然后调用endIgnoringInteractionEvents方法。第一种方法使应用程序完全停止接收触摸事件;第二种方法被调用以恢复接收此类事件。感谢您的调查。在这种特殊情况下,这种行为对我来说是正常的。如果没有,我想我会在UIActivityIndicator旋转时,将透明视图置于所有其他视图之上。谢谢,这一点很有帮助!!