ios - 在 iOS 中动态添加一堆控件到屏幕

标签 ios dynamic controls runtime addition

我在一个屏幕上工作,用户可以从下拉菜单中选择一个选项。基于这个选择,他向屏幕添加了一堆控件。我的下拉菜单位于屏幕的右下角。它在底部占据了 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.hmyView.m),您可以添加按钮或标签等 subview 。这些 subview 将相对于工作表 myView 放置。

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

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

关于ios - 在 iOS 中动态添加一堆控件到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846736/

相关文章:

ios - Swift:如何通过委托(delegate)使用属性观察者

iphone - 如何在 iphone 中找到图像的颜色边缘?

c# - 控件的名称不存在,即使它存在

.net - 使用多个模板的 WPF 控件创作

C# WebBrowser 控件 - 脚本错误,解决方法?

iphone - NSURLRequest:如何将 httpMethod "GET"更改为 "POST"

iphone - 设置背景颜色会扭曲表格单元格

javascript - 使用 JQuery mobile 创建 ListView 无法正常工作 II

iis - 真正不存在的 404 处理程序和动态页面……对 SEO 不利吗?

c# - 我可以在 WinRT/Windows 8 商店应用程序中绑定(bind)动态对象吗