2010-06-10 65 views
3

我想在界面生成器(包含在一个UIScrollView中)包含一些UILabels中建立一个子UIView,然后我想以编程方式“复制”此视图调整其左侧位置(通过其宽度的倍数)以实现“浮动“在UIScrollView中的左侧效果。然后我想将这个复制的UIView添加回到UIScrollView中,为UILabels添加不同的文本。如何以编程方式复制构建于界面构建器中的UIViews?

问题是我不知道如何以及如何“复制”UIViews。

回答

3

您可以尝试致电[查看复制],但如果不起作用,我不会感到惊讶。您可以使用NSKeyedArchiver/NSKeyedUnarchiver序列化/反序列化视图,但这也非常糟糕。

相反,你可能要加载的视图的多个副本:

  1. 移动视图你想变成自己的笔尖的多个副本。
  2. 让你的对象“拥有”该笔尖(任何你想要负责加载的类)。
  3. 添加一个名为“myView”的IBOutlet或其他,并将其分配给您的视图。
  4. 在你的类,调用是这样的:

-(UIView)makeMeANewMyView { 
    // Load MyView.nib into the myView outlet. 
    [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self]; 
    // Take ownership. 
    UIView * view = [[self.myView retain] autorelease]; 
    self.myView = nil; 
    return view; 
} 
2

我很新的Objective-C编程(和一般的oo编程)。我很难记住的一件事情是,只要你发现自己想把某些东西“复制”到多个地方,可能意味着你需要继承某些东西,然后添加你的定制子类的新实例。在这种情况下,我想你会想创建一个UIView的子类,然后根据需要使用该自定义视图?

请注意,我发布了这个建议,它是值得的...我是一个完全noob的objective-c,只是在等待帮助解决我自己的问题!

相关问题