我应该如何在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”。
答
是的,XML绝对是一个不错的选择。你也应该考虑使用JSON。在您的Web服务上生成信息,使用JSON对其进行编码,在应用程序中下载JSON字符串,然后解析并保存该字符串。
一旦你在应用程序中的数据,我会使用UITableView
动态创建表单。 UITableView
的数据源是NSArray
,它很容易从XML或JSON分析中获得。
在决定使用XML或JSON之前,快速浏览一下QuickDialog控件https://github.com/escoz/QuickDialog,看看它如何帮助您动态创建表单。 – tGilani 2012-08-15 13:13:40