我应该如何在iOS中动态创建表单?

问题描述:

我正在创建一个iPhone应用程序,我需要能够动态创建一个用户可以输入数据的“表单”。例如,假设我正在制作Dominoes Pizza应用程序,您可以通过应用程序内“表单”订购比萨饼。这种形式有不同的部分标题(披萨,意大利面,沙拉等)不同的“单选按钮”,如选项(肉披萨,奶酪比萨等)和一些条件选项(例如,你可能只会看到比萨如果您选择了披萨复选框)。我的应用程序将类似于一个带有许多复选框,单选按钮,下拉菜单等的窗体。我应该如何在iOS中动态创建表单?

我的问题是最好的方式来存储用于动态创建这种形式的信息?我的要求是很容易改变(比如说芝士披萨现在花费2美元以上),而且它应该能够被编程经验有限的人改变。

我的第一本能是使用XML像这样:

<Item>Pizza</Item> 
    <Type>Dropdown List</Type> 
    <Cost> $5.0 </Cost> 
    <Option> Cheese Pizza </Option> 
    <Option> Pepperoni Pizza </Option> 
    <Option> Meat Pizza </Option> 
<Item>Salad</Item> 
    <Type>Radio Buttons</Type> 
    <Cost> $2.0 </Cost> 
    <Option> Yummy Salad </Option> 
    <Option> Icky Salad </Option> 

有我的应用程序文件,然后我可以只解析这一点,每当我看到一个“单选按钮”类型,创建单选按钮,每当我看到一个“下拉列表”创建一个下拉列表。唯一的问题是,如果使用已经选择了披萨,那么它可能难以制作条件选项,例如仅显示沙拉项目。

这是最适合这种情况的技术吗? XML?请注意,我不希望它严格地是一个Web应用程序,因为我希望能够使用Objective-C对象,如“UISegmentedControl”。

+0

在决定使用XML或JSON之前,快速浏览一下QuickDialog控件https://github.com/escoz/QuickDialog,看看它如何帮助您动态创建表单。 – tGilani 2012-08-15 13:13:40

是的,XML绝对是一个不错的选择。你也应该考虑使用JSON。在您的Web服务上生成信息,使用JSON对其进行编码,在应用程序中下载JSON字符串,然后解析并保存该字符串。

一旦你在应用程序中的数据,我会使用UITableView动态创建表单。 UITableView的数据源是NSArray,它很容易从XML或JSON分析中获得。