2012-01-10 74 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