将容器视图置于前面

时间:2013-05-05 15:40:14

标签: ios objective-c uiviewcontroller

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

[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 个答案:

答案 0 :(得分:3)

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

v.superview.hidden = YES

而不是

v.hidden = YES

答案 1 :(得分:2)

[self.view bringSubviewToFront:desiredView]

这样可以更好地解决您的问题。

答案 2 :(得分:0)

您可以使用以下内容将任何子视图带到(重新排序): -

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

此方法将viewToBeShown置于self.view中每个子视图的顶部

希望它会对你有所帮助。

答案 3 :(得分:0)

只需从故事板到func setViewEnabled(view:UIView, enabled:Bool) { view.hidden = !enabled view.userInteractionEnabled = enabled } ,然后隐藏它!

在swift:

{{1}}