2017-06-21 46 views
1

我的應用程序中有一個階段需要與設備「同步」。在此期間,我希望a)防止用戶觸摸事物,並b)顯示同步操作的一些進度。iOS CALayer.zPosition不超越視圖層次結構嗎?

我做了一個自定義UIView,顯示我的百分比反饋,並將其放置在適當位置的視圖樹中。這解決了(b)。

對於(一),我只是拍一個UIView高於一切

myController.view.addSubview(newView) 

的頂部和操縱它的alpha值。通過使用半透明的顏色/ alpha值,我可以「灰化」應用程序。

但是,我想我的反饋控制仍然顯示「全綵色」。我認爲我可以簡單地調整所述視圖的layer.zPosition以使其在遮蔽/遮擋/灰色視圖的「上方」繪製。

myFeedbackView.layer.zPosition = 100.0 

不幸的是,這似乎並不奏效。在保護視圖中使用50%的阿爾法藍色,反饋視圖並不像所希望的那樣明亮。

我原本以爲zPosition在子視圖中放置的位置。那隻在給定的容器內嗎?我認爲它對屏幕上的所有視圖(及其相關圖層)都是全局的。

回答

1

經過對簡單色塊的一些實驗後,我認爲我已經得出結論,訂單視圖是在每個容器級完成的。在那個級別,首先使用zPosition,然後使用子視圖次序(當zPosition匹配時)。但這只是在一組子視圖的情況下。這些子視圖的容器將根據相同的標準對其兄弟姐妹進行仲裁。我希望Apple的文檔使這一點更加清晰。但也許我只是沒有深入挖掘。

相關問題