2

我将一堆容器视图堆叠在一起,并根据用户在屏幕上其他地方的点击来隐藏/取消隐藏,如下所示:

[self.childViewControllers[13] view].hidden = NO;

隐藏/取消隐藏工作正常,但只有其中一个允许使用其上的控件.....它是最重要的。

请在隐藏/取消隐藏用户点击时重新排序?

我现在根据昨天的答案尝试了以下方法:

UIView *x = self.childViewControllers[12];
[self.view bringSubviewToFront:x];

但它给出了错误

无法识别的选择器发送到实例

我也试过:

UIView *x = self.childViewControllers[12];
        x.layer.zPosition = 100;

这给出了相同的错误信息,非常感谢

4

4 回答 4

3

我有同样的问题。似乎在使用容器视图时,实际的内容视图控制器视图被放置在一个透明的容器视图中。因此,如果您想真正隐藏显示 View v 的 Container View,您应该使用

v.superview.hidden = YES

代替

v.hidden = YES
于 2015-09-03T14:34:37.087 回答
2
[self.view bringSubviewToFront:desiredView]

这将更好地解决您的问题。

于 2013-05-05T17:05:40.970 回答
0

您可以使用以下命令将任何子视图置于(重新排序)前面:-

viewToBeShown.hidden=FALSE;
[self.view bringSubviewToFront:viewToBeShown];

此方法会将 viewToBeShown 带到 self.view 中每个子视图的顶部

希望它会帮助你。

于 2013-05-05T15:44:29.090 回答
0

只需从情节提要到container view,然后隐藏它!

迅速:

func setViewEnabled(view:UIView, enabled:Bool)
{
    view.hidden = !enabled
    view.userInteractionEnabled = enabled
}
于 2016-04-05T14:01:31.353 回答