多次添加相同的子视图以进行查看

时间:2011-09-30 19:54:46

标签: iphone objective-c ios cocoa-touch uiview

我不知道这是否可行,但我想做的是在视图中多次添加一个子视图。我尝试过这样的事情:

[self.view addSubview: newView];
newView.center = CGPointMake(160, 100);
[self.view addSubview: newView];
newView.center = CGPointMake(160, 200);
[self.view addSubview: newView];

所有这一切都是移动newView,而不是添加新的。有什么想法吗?

我也试过这个:

[self.view addSubview:newView];
UIView *anotherView = newView;
anotherView.center = CGPointMake(160, 100)
[self.view addSubview:anotherView];

修改

以下是我随时间学习的解决方案

解决问题的另一种方法是创建一个包含视图的单独nib,并多次添加nib的实例。一个很好的模板可以用来实现这个解决方案,就像在UITableViewCell方法中使用自定义cellForRowAtIndexPath一样。

1 个答案:

答案 0 :(得分:44)

视图只能包含在单个父视图的层次结构中。只要将其添加到新的一个,它就会从上一个中删除。在这种情况下,它将被删除并添加回同一视图的层次结构。您需要复制子视图以使其多次出现。