在iPhone中创建“设置”对话框页面的最佳方法

时间:2010-11-11 17:05:09

标签: iphone objective-c cocoa-touch ipad ios

我需要向用户显示带控件的屏幕(即对话框)。它将显示一些标签和不同类型的控件,以便用户可以进行一些配置:

  • 选择一种颜色(自定义颜色选择器)
  • 选择线宽(滑块)
  • 从值列表中选择一个值(UISegmentedControl?)
  • 启用/禁用一个选项(开/关) ...

我正在评估不同的选择:

  1. 使用 InterfaceBuilder
  2. 中的标签和控件创建布局
  3. 使用 UITableView ,以便每个单元格都包含标签及其控件
  4. 我喜欢选项2,因为它类似于iPhone设置应用程序,它使屏幕看起来井井有条,为您提供部分,滚动...,但是在代码中创建所有不同的单元格布局真的很痛苦,记录每一行的高度...

    解决方案必须易于维护,允许轻松重用代码,DRY(低重复),数据驱动......

    是否有建议的或标准的方法来做到这一点?

4 个答案:

答案 0 :(得分:3)

您可能还想考虑一些开源解决方案,而不是自己实现它。我在我的应用中使用了InAppSettingsKit。有一些小的UI故障,但它运作良好。我还评估了mySettings(实际上我提交了几个补丁)和InAppSettings

即使你不使用它们,你也许可以从它们中汲取一些想法。

答案 1 :(得分:0)

您可以在IB中创建tableview单元格,然后只为每个单元格创建IBOutlets,然后返回数据源方法中的每个单元格(忘记它的确切名称,通常创建单元格的位置)

您可以在IB中为每个单元格创建一个单元格,或者在IB中创建不同类型的单元格,例如一个基于滑块的单元格等,并以编程方式更改文本等。

这是静态创建一个tableview,在某个地方是Apple指南。

答案 2 :(得分:0)

你是这么说的。使用UITableView并创建自定义UITableViewCells(可能在Interface Builder中!)并添加它们。  此外,至于从值列表中选择值... UITableView中的钻取(在导航控制器中嵌入根UITableView)以及所有选项,然后可能建议使用复选标记(这是大多数应用程序处理此行为的方式) 。开/关按钮更适合UISegmentedControl。

this book中有很好的例子。

祝你好运。

答案 3 :(得分:-1)

我发现了另一个类似的问题。接受的答案看起来很有希望。 How to create a UITableView with editable components?