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

cod*_*der 25 iphone cocoa-touch objective-c uiview ios

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

[self.view addSubview: newView];
newView.center = CGPointMake(160, 100);
[self.view addSubview: newView];
newView.center = CGPointMake(160, 200);
[self.view addSubview: newView];
Run Code Online (Sandbox Code Playgroud)

所有这一切都是四处newView走动,而不是添加新的.有任何想法吗?

我也试过这个:

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

编辑

这是我随着时间学习的解决方案

解决问题的另一种方法是创建一个包含视图的单独nib,并多次添加nib的实例.一个好的模板工作过实施该解决方案是做同样的方式自定义UITableViewCell在使用cellForRowAtIndexPath方法.

Chr*_*r A 48

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

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