在iOS中动态添加一组控件到屏幕

时间:2012-12-12 19:00:05

标签: ios dynamic controls runtime add

我正在一个用户从下拉菜单中选择一个选项的屏幕上工作。根据这个选择,他在屏幕上添加了一堆控件。我的下拉菜单位于屏幕的右下角。它占据了底部屏幕空间的20-25%。在底部剩余的75%屏幕中,我需要添加9个标签,6个UItext字段,2个下拉菜单和2个按钮。我在这附加一个标记。

我的问题是:在ASP.NET中,我有一个具有上述所有控件的转发器。在其中一个名为“添加更多”的按钮中。如果我单击该按钮,它会在当前按钮的底部添加相同的转发器。我们在iOS中有类似的东西吗?就像一个转发器,它有一堆控件和点击添加,并在底部添加精确的转发器等等。如果根据我的解释弹出任何想法/新想法,请告诉我。谢谢。

链接 http://dl.dropbox.com/u/40597849/mockup2.png

因此,当用户点击Add More时,应该再次添加右边的大矩形,其中包含8个标签,文本框,下拉列表及其下方的2个按钮(一个名为“Add More”)。如果您需要更多信息,请询问我。

ITMCustomView *cView = [[ITMCustomView alloc] initWithFrame:frame];
cView.delegate =self;
CGPoint scrollPoint = CGPointMake(0.0, (frame.origin.y/400)*400);
[self.scrollView setContentOffset:scrollPoint animated:YES];
[self.scrollView addSubview:cView];

最初是我添加的第一个自定义视图,我使用此帧大小添加它(187,585,350,21); 。接下来每当我点击添加更多我称之为代理

[self.delegate addNewSize:CGRectMake(187,self.y+ 400 , 400, 400)];

这会调用上面5行代码并创建一个新的自定义视图并将其添加到滚动视图中。我将self.y存储为当前构建的任何帧的y值。那么如何让我的滚动视图自由地上下移动。屏幕显示自定义视图,因为它们已添加但不允许我再次上升。我想假设添加自定义视图5次,我添加4我只想向上滚动,看到我添加4向下滚动,只需添加1个自定义视图,并使用它进行其他处理。但我的滚动视图不起作用,它停留在刚刚添加的自定义视图中,使我无法向上滚动。如果您需要更多信息,请问我。感谢。

1 个答案:

答案 0 :(得分:4)

使用包含所有观看次数的自定义视图。

1。)创建一个自定义类myView,其子类为UIView 2.)在该视图类中添加所需的所有控件 3.)在主视图中加入myView 4.)根据需要启动尽可能多的myView并将其添加到主视图中。

我希望这足以让你前进。


更新:详细说明了bgoers所做的评论 当您创建新的类myView子类UIView时,您将获得一个空白的表。此工作表将具有您在课程中指定的框架或启动时(由您决定)。在该框架内(myView.h中的myView.minitWithFrame),您可以添加按钮或标签等子视图。这些子视图将相对于工作表myView放置。

例如,您的绘图是包含所有控件的自定义视图。通过简单地启动另一个自定义视图而不添加更多子视图,我可以让另一个看起来完全像它。我需要做的就是将第二个自定义视图移动到我想要的位置,所有子视图都会跟随。

我鼓励您阅读如何在iOS中进行子类化以及如何工作。一旦掌握了它,它就非常简单。