Ios beginIgnoringInteractionEvents或userInteractionEnabled=否未按预期工作
在显示带有进度指示器的覆盖视图时,我面临着一个非常奇怪的用户交互问题 在主视图上,我有上一个和下一个按钮,单击下一个按钮,我进行一个web服务调用,在此过程中,我显示一个带有进度指示器的覆盖视图,如下所示Ios beginIgnoringInteractionEvents或userInteractionEnabled=否未按预期工作,ios,Ios,在显示带有进度指示器的覆盖视图时,我面临着一个非常奇怪的用户交互问题 在主视图上,我有上一个和下一个按钮,单击下一个按钮,我进行一个web服务调用,在此过程中,我显示一个带有进度指示器的覆盖视图,如下所示 [self createProgressViewWithMessage:@"Loading..."]; [self.view bringSubviewToFront:self.inProgressView]; [self.inProgressView becomeFir
[self createProgressViewWithMessage:@"Loading..."];
[self.view bringSubviewToFront:self.inProgressView];
[self.inProgressView becomeFirstResponder];
[NSThread detachNewThreadSelector:@selector(search:) toTarget:self
withObject:info];
成功检索后,我将更新记录列表,并执行启用和禁用“上一步”和“下一步”按钮。显示覆盖视图时,单击“上一步”或“下一步”按钮,事件将排队并在web服务调用完成后被调用。为了避免这些排队问题,我尝试了多种方法,比如调用[[UIApplication sharedApplication]beginIgnoringInteractionEvents]
创建进度视图并在web服务调用完成后调用[[UIApplication sharedApplication]endIgnoringInteractionEvents]
之前,但在此之后仍会调用事件
当覆盖视图存在但仍然没有使用时,甚至尝试通过设置userInteractionEnabled=NO
来创建主视图
尝试了所有可能的方法,但仍然没有用。不知道为什么在web服务调用完成后事件正在排队并被调用
有人能帮我解决这个问题吗?显示覆盖视图时,我不希望事件排队。我的意思是,当覆盖视图正在进行时,不应将事件传递到主视图上的“上一个”和“下一个”按钮。您可以设置
userInteractionEnabled=NO
,但不能设置主视图
但是覆盖视图(覆盖视图必须覆盖按钮)
或者您可以禁用按钮,但不能设置主视图 但是覆盖视图(覆盖视图必须覆盖按钮)
或者,您可以只禁用按钮,这有点违反直觉,但实际上您希望覆盖层启用交互功能。在这种情况下,它将接收触摸事件,这些事件不会传递到按钮和下面的其他视图:
// Stop interacting with buttons underneath while async operation in progress.
myOverlayView.userInteractionEnabled = YES;
请看这个问题这有点违反直觉,但实际上您希望您的覆盖启用交互功能。在这种情况下,它将接收触摸事件,这些事件不会传递到按钮和下面的其他视图:
// Stop interacting with buttons underneath while async operation in progress.
myOverlayView.userInteractionEnabled = YES;
查看此问题我已尝试将overlay view userInteractionEnabled设置为否,甚至禁用了按钮。在我的web服务调用完成后,将触发这些事件。当web服务正在进行时,他们不会被解雇。一旦web服务调用完成,所有事件都将排队并被触发。那么问题可能不是按钮被触发。我需要查看有关按钮的更多代码如何执行web服务请求web服务调用完成后执行的操作我已尝试设置overlay view userInteractionEnabled=否甚至使按钮失效。在我的web服务调用完成后,将触发这些事件。当web服务正在进行时,他们不会被解雇。一旦web服务调用完成,所有事件都将排队并被触发。那么问题可能不是按钮被触发。我需要查看更多关于按钮的代码。如何执行web服务请求完成web服务调用后您将执行什么操作