如何在StackView中找到视图的Superview / parentViewController

时间:2019-03-21 17:56:05

标签: ios swift subview stackview superview

希望这并不太令人困惑。

我有一个主视图控制器(MainView),该视图的底部有一个stackview,在stackview内部,我有三个视图。在其中一个视图中(我称其为footerView),我要添加一点tooltipView-并且因为footerView嵌套在MainView底部的stackview中-它与其他意见。我想告诉tooltipView在所有视图之上,但是它不起作用。在footerView内部-它没有superview(我想是因为它在堆栈视图中),所以我不能使用parentView.bringSubviewToFront(childView)

我该怎么办?通过层级委派是唯一的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以手动设置每个图层的<?php function getFile($file) { if (file_exists($file)) { $file = file_get_contents($file); $detect_enc = mb_detect_encoding($file); if ($detect_enc != ini_get('default_charset')) $file = mb_convert_encoding($file, $detect_enc); return $file; } else { return false; } } 。默认值为0,因此如果不手动控制,可能无法获得所需的值。例如,您可以尝试

  

tooltipView.layer.zPosition = 1

  

tooltipView.layer.zPosition = .greatestFiniteMagnitude

将其设置为1会使它位于默认为0的其他视图之上,或者将其设置为zPosition总是会位于最前面。

签出this answer on zPostionApple's documentation on zPostion

答案 1 :(得分:0)

Tommy的回答确实有所帮助,但有帮助的另一件事是,我在tooltipView完成设置之前就创建了footerView,因此superviewnil的原因。我将tooltipView的初始化移动到func layoutSubviews()内部,并且可以正常工作。

但是也请确保您取消选中clip to bounds。这就是为什么无论我对zPosition所做的事情都没有改变

的原因