gpt4 book ai didi

ios - beginIgnoringInteractionEvents 或 userInteractionEnabled = NO 未按预期工作

转载 作者:行者123 更新时间:2023-11-29 13:42:25 24 4
gpt4 key购买 nike

在显示带有进度指示器的叠加 View 时,我遇到了一个非常奇怪的用户交互问题。

在主视图上,我有上一个和下一个按钮,然后单击下一个按钮,我进行了网络服务调用,在此过程中,我显示了一个带有进度指示器的叠加 View ,如下所示。

    [self createProgressViewWithMessage:@"Loading..."];
[self.view bringSubviewToFront:self.inProgressView];
[self.inProgressView becomeFirstResponder];
[NSThread detachNewThreadSelector:@selector(search:) toTarget:self
withObject:info];

成功检索后,我将更新记录列表并执行启用和禁用上一个和下一个按钮。在显示覆盖 View 时,单击上一个或下一个按钮,事件将被排队并在 Web 服务调用完成后被调用。为了避免这些排队的事情,我尝试了多种方法,比如调用 [[UIApplication sharedApplication] beginIgnoringInteractionEvents]在 Web 服务调用完成后创建进度 View 并调用 [[UIApplication sharedApplication] endIgnoringInteractionEvents] 之前,但之后仍会调用事件。

甚至尝试通过设置 userInteractionEnabled = NO 制作主视图,同时覆盖 View 存在但仍然没有用。

尝试了所有可能的方法,但仍然没有用。不知道为什么在 Web 服务调用完成后事件正在排队并被调用。

有人可以帮我解决这个问题吗?我不希望在显示覆盖 View 时对事件进行排队。我的意思是,当覆盖 View 正在进行时,不应将事件传递到主视图上的上一个和下一个按钮。

最佳答案

这有点违反直觉,但您实际上希望叠加层能够进行交互。在这种情况下,它将接收触摸事件,并且不会将它们传递给下面的按钮和其他 View :

    // Stop interacting with buttons underneath while async operation in progress.
myOverlayView.userInteractionEnabled = YES;

看这个问题blocking user interaction with underlying views

关于ios - beginIgnoringInteractionEvents 或 userInteractionEnabled = NO 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com