Iphone 看地狱。隐藏一个子视图将隐藏所有子视图

Iphone 看地狱。隐藏一个子视图将隐藏所有子视图,iphone,cocoa-touch,uiview,subview,Iphone,Cocoa Touch,Uiview,Subview,很明显,我正处于一个漩涡般的地狱地带,我的兄弟姐妹是父母,我的大脑完全崩溃了 事情是这样的。真的,真的很简单。我有一个包含N个叶节点同级子视图的容器视图。这里没有把戏,非常简单。我做了以下工作: //occludedPageSet是一组视图标记,对应于屏幕外的视图,因此完全被遮挡。这是用几何方法确定的 for (NSNumber *n in occludedPageSet) { // Point to a view corresponding to this tage

很明显,我正处于一个漩涡般的地狱地带,我的兄弟姐妹是父母,我的大脑完全崩溃了

事情是这样的。真的,真的很简单。我有一个包含N个叶节点同级子视图的容器视图。这里没有把戏,非常简单。我做了以下工作:

//occludedPageSet是一组视图标记,对应于屏幕外的视图,因此完全被遮挡。这是用几何方法确定的

for (NSNumber *n in occludedPageSet) {

            // Point to a view corresponding to this tage
    UIView *v = [self.containerView viewWithTag:[n integerValue]];

            // Hide this view
    if (v.hidden == NO) {

                    NSLog(@"View %d is occluded. Hide it.", [n integerValue]);
        v.hidden = YES;

    } // if (v.hidden == NO)


} // for (occludedPageSet)
很平淡的东西。不幸的是,所有兄弟姐妹的观点都消失了!怎么回事?!?这怎么可能

我是否需要在此处为v添加[retain]/[release]。我被难住了

莫名其妙,,
Doug

显然,您的所有视图都包含在occludedPageSet中,或者您的所有标记都是相同的n

NSNumber *n in occludedPageSet

或者,其中一个v视图是其余视图的父视图,因此当您隐藏它时,您会将它们全部隐藏。

显然,您的所有视图都包含在occludedPageSet中,或者您的所有标记都相同

NSNumber *n in occludedPageSet

或者,其中一个v视图是其余视图的父视图,因此当您隐藏它时,您可以将它们全部隐藏。

确保self.containerView的标记与任何子视图的标记完全不同。调用viewWithTag将返回接收者(如果它是给定的标记),这将反过来隐藏所有视图。通过迭代或打印出v指向的地址,这样您就知道您正在屏蔽您应该屏蔽的内容。

确保self.containerView的标签与任何儿童标签完全不同。调用viewWithTag将返回接收者(如果它是给定的标记),这将反过来隐藏所有视图。通过迭代或打印出v指向的地址,这样您就知道您正在屏蔽您应该屏蔽的内容。

我是否遗漏了问题的某些方面?很自然,如果隐藏视图,它作为子视图保存的任何视图都会被隐藏。毕竟,你看不到容器视图

如果你把十件东西放在一个盒子里,让盒子看不见,难道你不认为这意味着你看不见盒子里的东西吗?同样地,如果只有隐形斗篷是隐形的,而不是下面的人,那么隐形斗篷就没有什么用处了


如果您需要一些可见的东西,而有些不可见,请处理特定的项目,而不是容器。

我是否遗漏了一些有关此问题的信息?很自然,如果隐藏视图,它作为子视图保存的任何视图都会被隐藏。毕竟,你看不到容器视图

如果你把十件东西放在一个盒子里,让盒子看不见,难道你不认为这意味着你看不见盒子里的东西吗?同样地,如果只有隐形斗篷是隐形的,而不是下面的人,那么隐形斗篷就没有什么用处了


如果您需要一些可见的东西,而一些不可见的东西,请处理特定的项目而不是容器。

您确定不应该隐藏的视图不是子视图而不是同级视图吗?您确定不应该隐藏的视图不是子视图而不是同级视图吗?