0

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

我的问题是:在 ASP.NET 中,我有一个具有上述所有控件的中继器。在名为“添加更多”的按钮之一中。如果我单击该按钮,它会在当前的底部添加相同的中继器。我们在 iOS 中有类似的东西吗?就像一个中继器,它有一堆控件,然后单击添加,然后在底部添加确切的中继器,依此类推。如果弹出基于我的解释的任何想法/新想法,请告诉我。谢谢。

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

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

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 个自定义视图并使用它进行其他处理。但是我的滚动视图不起作用,它卡在刚刚添加的自定义视图上,使我无法向上滚动。如果您需要更多信息,请询问我。谢谢。

4

1 回答 1

4

使用包含所有视图的自定义视图。

1.)制作一个自定义类myView,其中子类UIView
2.) 在该视图类中添加您需要的所有控件。
3.) 包含myView在您的主视图中。
4.) 尽可能多myView地启动并将它们添加到您的主视图中。

我希望这足够清楚,可以让您继续前进。


更新:至于详细说明 bgoers 的评论。
当您创建一个新的类myView子类时,UIView您会得到一张空表。此工作表将包含您在课堂上或在您开始时指定的框架(由您决定)。在该框架内(myView.hmyView.min initWithFrame),您可以添加子视图,如按钮或标签。这些子视图将相对于工作表 myView 放置。

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

我鼓励你阅读如何子类化以及它在 iOS 中的工作原理。一旦掌握了窍门,它就非常简单。

于 2012-12-12T20:03:10.187 回答