隐藏另一种方法的子视图

时间:2012-08-14 21:33:36

标签: iphone ios methods hidden subview

目前我正在使用以下行将方法的视图作为子视图添加到方法内的另一个视图。

[self.landscape addSubview:[self makeSpin]];

这很好用,一切都很花花公子,但现在我需要知道如何隐藏它。

显然[self.landscape setHidden:[self makeSpin]];没有做到这一点 有人可以给我一个关于如何做到这一点的快速示例吗?或者即使是正确方向上的一点也会有所帮助。

提前感谢。

3 个答案:

答案 0 :(得分:1)

我假设makeSpin返回的视图是一个实例变量(如果不是你以某种方式必须使它成为实例变量或使用标签)。如果是,请试试这个:

[self makeSpin].hidden = YES;

答案 1 :(得分:1)

如果[self makeSpin]始终返回相同的对象(不创建并返回新视图而不是自动发布的视图),则可以删除视图,如:

[[self makeSpin] removeFromSuperView];

否则你需要在子视图中添加一个标签(从

返回的视图)
[self makeSpin]).

像:

UIView *tempView = [[self makeSpin] retain];
tempView.tag = 7;
[self.landscape addSubview:tempView];
[tempView release];

要删除视图,您需要编写如下内容:

[[self.landscape viewWithTag:7] removeFromSuperview];

你也可以使用这个循环,

for (UIView *subview in [self.landscape subviews])
{
    if (subview.tag == 7)
    {
        [subview removeFromSuperview];
    }
}

答案 2 :(得分:0)

如果makeSpin返回一个未分配给实例变量的自动释放视图,那么除了尝试在self.landscape中找到它之外,您不会有任何访问权限。子视图数组。到目前为止,最简单的方法是在类中创建一个属性并使用它来保存新子视图的值,以便以后可以使用它。您只需要记住在viewDidUnload方法中将其设置为nil。

相关问题