gpt4 book ai didi

ios - UIAlertView exclusiveTouch 按钮 iOS8

转载 作者:行者123 更新时间:2023-11-28 21:53:36 28 4
gpt4 key购买 nike

在 iOS 7 上,当 UIAlertView 出现时,它的按钮似乎自动设置了 exclusiveTouch=YES。这样一来,如果您在警报 View 中同时按下多个按钮,就不会发生什么可怕的事情。

在 iOS 8 上不是这种情况。当我用 2 个按钮显示 UIAlertView 时。我同时按下这 2 个按钮,应用程序卡住了。

我无法访问 UIAlertView 上的 UIButton。为此,我无法访问 UIAlertView 的任何 subview 。alertView.subview 返回空数组,无论我在生命周期的哪个部分调用它。

最佳答案

我已经找到了解决问题的方法。我实现了 UIAlertView 的委托(delegate)方法:

-(void)didPresentAlertView:(UIAlertView *)alertView
{
UIView *view = ((UIApplication*)[UIApplication sharedApplication]).keyWindow.rootViewController.presentedViewController.view;
[self setExclusiveTouchForView:view];
}

-(void) setExclusiveTouchForView:(UIView*)view
{
for (UIView *subview in view.subviews) {
subview.exclusiveTouch = YES;
[self setExclusiveTouchForView:subview];
}
}

一开始看到 view 变量中的所有 subview 都不属于 UIButtonUIControl 类时感到很困惑。

实际上没有必要在所有 subview 上设置exclusiveTouch 属性。但是我这样发布是为了降低代码的复杂性。

它工作正常。当同时按下 UIAlertView 的两个按钮时,应用程序不再卡住。仅接受其中一台打印机。

关于ios - UIAlertView exclusiveTouch 按钮 iOS8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362692/

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