我的应用中有一个阶段,我需要与设备“同步”。在此间隔期间,我想a)阻止用户触摸事物,b)显示同步操作的一些进展。
我制作了一个自定义UIView,显示我的百分比反馈,并将其放置在适当位置的视图树中。这解决了(b)。
对于(a),我只是在一切的顶部拍了一个UIView
myController.view.addSubview(newView)
并操纵它的alpha值。通过使用半透明的颜色/ alpha值,我可以“灰显”应用程序。
但我希望我的反馈控制仍能显示“全彩色”。我想到我可以简单地调整所述视图的layer.zPosition
,让它在“屏蔽/阻塞/灰化”视图上方绘制。
myFeedbackView.layer.zPosition = 100.0
不幸的是,这似乎不起作用。使用50%的alpha蓝色作为防护视图,反馈视图并不像希望的那样是明亮的全彩色。
我曾认为zPosition
胜过子视图中的位置。那只是在给定的容器内吗?我认为它对屏幕上的所有视图(及其相关图层)都是全局的。
答案 0 :(得分:3)
在使用简单的彩色瓷砖进行一些实验之后,我想我已经得出结论,订单视图是在每个容器级别完成的。在该级别,首先使用zPosition,然后使用子视图顺序(当zPosition匹配时)。但这只是在一组子视图的上下文中。这些子视图的容器将根据相同的标准与其兄弟姐妹进行仲裁。我希望Apple文档能够更清楚地说明这一点。但也许我只是没有深入挖掘。