2017-10-18 52 views
-1

我有2個視圖,我需要在特定條件下添加和移除另一個視圖。問題是,當我添加視圖,設置約束,並隱藏我不需要的,它會中斷手勢到其他視圖。在Swift中將視圖移到前面

是否有任何簡單的方法可以將一個視圖放到視圖層次結構的前面,以便用戶可以與之交互?之後,我需要對其他視圖執行相同的操作,並降低第一個視圖層次優先級。

在其他問題,我聽說有可能改變Z座標,也許有辦法做到這一點,以實現我的觀點?

+0

使用UIView.insertSubview(view at:position)。 –

回答

1

您只能在CALayer的概念中修改zPositionUIView不公開此功能。但它確實暴露了兩種方法; sendSubviewToBack:bringSubviewToFront:。這需要在要移動的視圖的超視圖上調用,並將視圖作爲參數移動。

另請注意,如果您只是在頂視圖上設置userInteractionEnabled = false,它會將觸摸傳遞給它下面的視圖。這可以節省視圖的位置。

+0

什麼是zIndex?從來沒有聽說過......「它確實暴露了兩種方法」只有兩種?真? –

+0

我的意思是'zPosition'。我的錯。 –

1

嘗試使用bringSubviewToFront:sendSubviewToBack:來處理這種情況。隱藏視圖不會將其從視圖堆棧中移除,並且不允許您與視圖下方的視圖進行交互。希望這會幫助你。

相關問題