无法将视图作为子视图添加到多个视图 - iphone dev

时间:2011-04-21 06:18:14

标签: iphone

我需要在app中为多个视图添加一个视图。 我正在运行一个循环遍历所有UIViews的函数,并将该视图添加为子视图。

我做过这样的事情:

-(void) setViewForEachSegment: (UIView*)view {
    int i;
    for (i = 0; i < [segments count]; i++) {
        [[segments objectAtIndex:i] addSubview: view]
    }
}

此处的细分是UIViews的数组。

现在,发生的事情是子视图仅添加到最后一段。

还有其他人遇到过同样的问题吗?我已经工作了好几个小时,但不知道如何解决它。

2 个答案:

答案 0 :(得分:4)

根据UIView class reference

  

父视图可能包含任意数量的子视图,但每个子视图只有一个超级视图,负责正确定位其子视图。

因此,每次将视图添加到其他父视图时,都会从上一个父视图中删除该视图。您需要更改视图层次结构以适应您要执行的操作,或者您需要将多个子视图添加到每个父视图。

答案 1 :(得分:4)

您无法将一个视图添加到多个视图中,因为视图一次可以包含单个父视图。它由superView的{​​{1}}属性表示。

每次在添加到View之前创建UIView的新对象