我在一个屏幕上工作,用户可以从下拉菜单中选择一个选项。基于这个选择,他向屏幕添加了一堆控件。我的下拉菜单位于屏幕的右下角。它在底部占据了 20-25% 的屏幕空间。在底部剩余的 75% 屏幕中,我需要添加 9 个标签、6 个 UI 文本字段、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];
最初我添加的第一个自定义 View ,我添加了这个帧大小(187、585、350、21); .接下来,每当我点击添加更多时,我都会调用这个委托(delegate)
[self.delegate addNewSize:CGRectMake(187,self.y+ 400 , 400, 400)];
这会调用上面的 5 行代码并创建一个新的自定义 View 并将其添加到 ScrollView 中。我将 self.y 存储为当前正在构建的任何框架的 y 值。那么如何让我的 ScrollView 自由地上下移动。屏幕显示自定义 View ,因为它们被添加但不允许我继续往上走。我想假设添加了 5 次自定义 View ,我添加了 4 次我只是想向上滚动,看到我添加了 4 次向下滚动并再添加 1 个自定义 View 并用它做其他处理。但是我的 ScrollView 不起作用,它停留在刚刚添加的自定义 View 上,使我无法向上滚动。如果您需要更多信息,请问我。谢谢。
最佳答案
使用包含所有 View 的自定义 View 。
1.) 创建一个自定义类myView
,它是UIView
的子类。
2.) 在该 View 类中添加您需要的所有控件。
3.) 在您的主视图中包含 myView
。
4.) 启动尽可能多的 myView
并将它们添加到您的主视图。
我希望这足够清楚,可以让您继续前进。
更新:至于详细说明 bgoers 的评论。
当您创建一个新类 myView
子类 UIView
时,您会得到一张空表。此表将包含您在类里面或开始时指定的框架(由您决定)。在该框架内(initWithFrame
中的myView.h
和myView.m
),您可以添加按钮或标签等 subview 。这些 subview 将相对于工作表 myView 放置。
例如,您的草图是一个包含所有控件的自定义 View 。通过简单地启动另一个自定义 View 而不添加更多 subview ,我可以让另一个看起来完全像它。我需要做的就是将第二个自定义 View 移动到我想要的位置,所有 subview 都会跟随。
我鼓励您阅读有关如何子类化以及它在 iOS 中如何工作的内容。一旦掌握了它,它就非常简单。
关于ios - 在 iOS 中动态添加一堆控件到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846736/