2012-01-10 42 views
1

我有一个应用程序,有一系列的自定义模态对话框视图。作为模式,我需要阻止用户与对话框边的项目交互(例如,当出现暂停对话框时,我不希望用户能够触摸按钮来浏览应用程序)。为了使它们成为模态,我在每个对话框视图的后面都有一个透明的UIView来捕捉触摸。这个工作正常,除了有一个UIView动画可以淡化对话框,并且当对话框视图渐隐时忽略触摸。捕获透明UIView的触摸

据我可以告诉问题是,如果一个UIView的α不等于1.0,那么它忽略触摸。有什么办法让UIView与一些alpha混合响应触摸?

回答

0

UIView不会忽略触摸,除非其alpha为0.0,或者其'hidden'属性设置为YES。这两个设置都使UIView不可见。

我建议使用模式视图控制器 - 除非有某种原因希望其他按钮显示。您可以为每个模式视图设置一个单独的视图控制器,而不是透明视图。然后,使用视图控制器的'presentModalViewController:animated:'方法来控制它。

请注意,模态视图控制器可以嵌套(一个可以调用另一个),因此您可以根据需要将多个链接在一起。

+0

我刚刚创建了一个测试项目,重新创建了对话框中的动画,而实际上这个视图只忽略了在0 alpha处的触摸,所以我不确定这个问题是什么。不幸的是,我没有解决问题,但它确实回答了我的问题;) P.S. - 模态视图控制器不会为这些对话框工作的原因有几点,但感谢您的建议。 – Mattia 2012-01-11 02:56:02

0

如果您正在动画化对话框视图的alpha,并且希望对话框视图支持动画过程中的交互,那么在创建动画时需要使用UIViewAnimationOptionAllowUserInteraction选项。

+0

感谢您的提示 - 我不知道这个选项。然而,我的问题并不是我希望用户在对话框出现时与对话进行交互,而是我不希望他们能够与任何对话进行交互,除了对话框出现时。 – Mattia 2012-01-11 02:22:23