我希望我的用户输入任意长的项目列表,然后将它们在幕后分成我可以轻松存储在我的数据库中的格式。我有两个关于如何做到这一点的想法,但只有一个我可以开始工作(不太优雅的版本)。
思想1(这是我可以开始工作的那个):为用户提供UITextView
并让他们输入由特殊字符;
分隔的项目。当他们提交表单时,我用正则表达式解析它,然后相应地存储。从UI / UX的角度来看,这并不像我想的那样优雅,但我可以使这个工作。
思考2(这是我认为会更好的):通过它提供UITextField
和+
按钮。用户输入1个项目,然后点击+
按钮以显示另一个UITextField
。如果屏幕上有多个文本字段,则每个文本字段都会获得-
按钮以“删除”该字段。关于如何做到这一点的任何想法?
谢谢!
答案 0 :(得分:0)
查看iPhone上的主/详细信息的Xcode模板。
它有一个表视图,您可以通过按右上角的+按钮添加新行。在这种情况下,每一行都是默认的tableViewCell,但您可以轻松修改以添加UITextField
答案 1 :(得分:0)
选项2听起来像使用UITableView非常容易。您可以在其上方有一个文本字段,这样您就不必显示新视图来输入数据。然后只需在输入数据后清除文本字段。您可以使用滑动删除表上的删除条目。
/-----------------\
|Prompt text | + |
|------------------
| User entry 1 |
| User entry 2 |
| User entry 3 |
| User entry 4 |
| |
\-----------------/
实现选项1的另一种方法是TITokenField。它允许用户键入,直到他们按下令牌分隔符键(','默认情况下我想)。此时,将根据用户输入的文本创建令牌。
可以使用各种回调,以便您可以在创建令牌之前验证其输入。处理用户输入的项目列表就像迭代一系列令牌一样简单。奖励功能:TITokenField可以将数据源用作自动完成功能。演示应用程序显示的内容与您描述的内容非常相似,并带有一个加号按钮来添加新令牌。可以通过选择它们然后按退格键来删除标记。