将代码动态添加到View Controller的代码有什么好的做法?

时间:2013-12-11 18:34:41

标签: ios uiviewcontroller

我基本上希望有以下情况。

enter image description here

很简单,每个条目都包含一个数字标签,两个标题标签和两个文本字段。

作为iOS开发的新手,我不确定这是一种智能,简单的方法。这样做的最佳方法是什么?

4 个答案:

答案 0 :(得分:4)

这是使用UITableView的一个很好的案例。创建一个表格和一个单元格原型,其中包含您需要的所有元素(数字,名称和年龄字段等)。为“添加更多”创建不同的单元格原型。那将是你桌子上的最后一个单元格。添加新记录时增加单元格数。

UITableView有多个在线教程。您想要寻找的是如何设置和使用2种不同的细胞类型。例如,请参阅this SO question

如果您使用表格视图而不是仅添加一些子视图,则可以免费获得一些有用的功能:

  • 滚动,如果你有很多记录
  • 动画插入行
  • 支持删除行/记录
  • 轻松自定义记录列表:页眉,页脚,部分。

答案 1 :(得分:1)

您可以手动执行此操作 - 没有问题。在代码中创建UITextField,UILabel等对象,根据自己的喜好配置它们并使用

添加它们
[view addSubview: ]

方法

答案 2 :(得分:1)

案例A: 如果您要添加有限数量的此类视图

创建一个viewController,添加textField,label等以查看此视图​​控制器。 当用户单击添加按钮时创建此viewController的新实例,然后通过引用先前添加的视图的y位置来使用addSubview

案例B:如果数量不受限制,则需要滚动,然后tableView是最佳选择

  1. 您需要使用标签和文本字段创建自定义单元格 要么 如果你使用故事板,你可以使用原型单元格做同样的事情。

  2. 当用户点击添加按钮时,请执行此操作

  3. //更新新单元格的数据

    [tableView insertRowsAtIndexPaths:paths
                                withRowAnimation:UITableViewRowAnimationTop];
    

    您可以创建添加更多视图并将其设置为表格页脚,因为它始终保持在底部,如此

    table.tableFooterView = assignYourAddMoreViewHere;
    

答案 3 :(得分:1)

我会:

  1. 创建滚动视图 - UIScrollView,将此滚动条的大小设置为主视图的大小,并将此滚动视图添加到主视图中。

  2. 创建内容视图 - UIView,使用滚动视图将此内容视图的宽度设置为。但高度应为0.将第一步的setContentSize:中的滚动视图设置为内容视图的大小。将此内容视图添加为滚动视图的子视图。

  3. 创建一个iVar以跟踪已使用的按钮数量。

  4. 现在,每次点击+按钮,创建按钮,标签等,使用3中的iVar来计算和调整每个按钮,标签等的框架。

  5. 调整内容视图的框架,为新的按钮,标签等设置空间。将滚动视图的contentSize:更新为内容视图的框架大小。

  6. 将步骤4中的按钮,标签等添加到内容视图作为子视图。