簡體   English   中英

捕獲透明UIView上的觸摸

[英]Capturing touches on transparent UIView

我有一個具有一系列自定義模式對話框視圖的應用程序。 作為模態,我需要防止用戶與對話框側面的項目進行交互(例如,當出現暫停對話框時,我不希望用戶能夠觸摸按鈕來瀏覽應用程序)。 為了使它們具有模式性,我在每個對話框視圖的“后面”都有一個透明的UIView來捕獲觸摸。 效果很好,除了有一個UIView動畫可以淡化對話框,而在淡入對話框時,對話框視圖則忽略觸摸。

據我所知,問題是,如果UIView的alpha不等於1.0,那么它將忽略觸摸。 有什么辦法可以讓帶有一些alpha混合的UIView響應觸摸?

如果要為對話框視圖的Alpha設置動畫,並且希望對話框視圖在動畫過程中支持交互,則在創建動畫時需要使用UIViewAnimationOptionAllowUserInteraction選項。

UIView不會忽略觸摸,除非其alpha為0.0,或者其“ hidden”屬性設置為YES。 這兩個設置使UIView不可見。

我建議使用模式視圖控制器-除非出於某些原因您希望其他按鈕顯示。 您將為每個模式視圖設置一個單獨的視圖控制器,而不是透明視圖。 然后,使用視圖控制器的'presentModalViewController:animated:'方法進行控制。

請注意,模態視圖控制器可以嵌套(一個可以調用另一個),因此您可以根據需要將多個鏈接在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM