我有一个uiview,该uiview在超级视图的顶部覆盖和阻止与我的视图的交互。我试图将被遮挡的视图放到最前面,但这也不起作用。
以下是阻止视图的代码:
self.gesstureView = UIView(frame: screenBounds)
if let gestureView = self.gesstureView, let controlDockView = self.controlDockView, let controlTopView = self.controlTopView {
gestureView.autoresizingMask = [.flexibleWidth, .flexibleBottomMargin]
gestureView.frame.size.height -= controlDockView.frame.height
gestureView.contentMode = .center
gestureView.backgroundColor = UIColor.red
self.view.addSubview(gestureView)
此处显示了被阻止的视图的代码:
let topHeight = screenBounds.height * 0.15
self.controlTopView = UIView(frame: CGRect(x: 0, y: 0, width: screenBounds.width, height: topHeight))
if let controlTopView = self.controlTopView {
controlTopView.backgroundColor = UIColor.clear
controlTopView.autoresizingMask = [.flexibleTopMargin]
controlTopView.addBlurEffect()
self.view.addSubview(controlTopView)
// does not work view is still hidden
self.view.bringSubview(toFront: controlTopView)
答案 0 :(得分:1)
感谢示例代码!
问题在于将gestureView
放在最前面之后,您将controlTopView
添加到视图层次结构中。因此controlTopView
实际上将是第二个视图,这就是为什么它不可见的原因。
要解决该问题,请最后添加controlTopView
或在添加所有内容后将其放在最前面。
view.addSubview(previewView)
view.addSubview(controlDockView)
view.addSubview(gestureView)
view.addSubview(controlTopView)
答案 1 :(得分:0)
以防万一-您是否仅因为没有可见的图形就检查controlTopView
是否不可见?在您的代码段中,controlTopView
仅具有透明的背景色和模糊效果(对它后面的纯红色没有任何作用)。
答案 2 :(得分:0)