【问题标题】:Add same subview multiple times to view多次添加同一个子视图查看
【发布时间】:2011-11-28 17:57:55
【问题描述】:

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

[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 的实例。实现此解决方案的一个很好的模板是按照在cellForRowAtIndexPath 方法中使用自定义UITableViewCell 的方式来完成。

【问题讨论】:

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

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


【解决方案1】:

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

【讨论】:

  • 您只是在创建一个指向同一个 UIView 对象的新指针。由于 UIView 不响应复制,因此您需要实际分配和初始化一个新的 UIView 并对其进行自定义以匹配第一个。这可能在这方面有所帮助:stackoverflow.com/questions/4425939/uiview-can-not-be-copy.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
相关资源
最近更新 更多