2011-09-30 50 views
20

我不知道这是否可能,但是我想要做的是多次添加一个子视图到视图。我试过这样的事情:添加同一子视​​图多次查看

[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]; 

编辑

这里有一个解决方案,我已经与时间

另一种方式来解决这个问题教训将是使一个单独的笔尖包含视图并多次添加笔尖的实例。实现此解决方案的一个很好的模板是以与cellForRowAtIndexPath方法中使用自定义UITableViewCell相同的方式进行。

+0

感谢您提出这个问题。这间接回答了我的一个!节省时间!哇噢! –

回答

39

视图只能包含在单个父视图的层次结构中。只要将它添加到新的,它就会从前一个中删除。在这种情况下,它将被删除并添加回同一视图的层次结构。您需要制作副视图的副本才能多次显示它。

+0

我刚刚尝试了您的建议(我认为)并编辑了我的帖子。 – coder

+1

您只是创建一个指向同一个UIView对象的新指针。由于UIViews不会对副本做出响应,因此您需要实际分配和初始化一个新的UIView并对其进行自定义以匹配第一个UIView。这可能有助于这方面:http://stackoverflow.com/questions/4425939/uiview-can-not-be-copy。 –

相关问题