我想在Interface Builder中构建一个子UIView(包含在UIScrollView中),其中包含一些UILabel,然后我想以编程方式“复制”此视图调整其左侧位置(通过其宽度的倍数)来实现在UIScrollView中“浮动”左侧效果。然后我想将这个复制的UIView添加回UIScrollView,并为UILabels提供不同的文本。
问题是我不知道如何以及如何“复制”UIViews。
答案 0 :(得分:3)
您可以尝试调用[查看副本],但如果不起作用我也不会感到惊讶。您可以使用NSKeyedArchiver / NSKeyedUnarchiver来序列化/反序列化视图,但这也非常糟糕。
相反,您可能希望加载视图的多个副本:
的
-(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;
}
答案 1 :(得分:2)
我对Objective-c编程(以及一般的oo编程)非常陌生。我难以记住的一件事是,每当你发现自己想要将某些东西“复制”到多个地方时,它可能意味着你需要继承某些东西,然后添加自定义子类的新实例。在这种情况下,我认为您想要创建UIView的子类,然后根据需要使用该自定义视图?
请注意,我发布这个建议是为了它的价值......我是一个完全没有目标的人 - 只是等待我自己的一个问题等待帮助!