0

我在 iOS (iPhone) 中有一个视图,它有多个组件,以某种堆栈方式组织(一个在下一个的顶部)。这些是用户帐户属性,有些可能是空白的。

所以,在我看来,组件布局是这样的:

UITextField1(名称)

UITextField2(位置)

UITextField3(年龄)

UITextView1(生物)

UITableView(用户条目)。

某些字段可能为空白。我希望下一个字段向上移动,而不是为空白字段留出空格。

这就像 flowlayout 的这个问题:What is the best/easy way to create 'flow layout' type layout in iOS

我只能看到两种处理方法:

  1. 创建一个遍历所有 UIView 并确定哪些是空白的函数并将下面的上移。
  2. 创建一个 UITableView 并对内容为空的单元格使用不同的单元格高度。

理想情况下会有一个组件,但我找不到它(基本上是某种堆栈/流布局)。

无论如何,我相信我将实施上面的选项#1,但我不知道是否有一种“标准”的方式来实现这一点(老实说,我什至不知道寻找这个功能的正确术语) .

谢谢。

4

1 回答 1

1

通过使用 UITableView 而不是您建议的方式,我会更倾向于您的第二选择。

这将是我使用 UITableView 的方法:

  1. 为我的每个组件创建一个 UITableViewCell(或自定义单元格)并为每个组件分配一个标签值,我们稍后将使用它们。您可以在 viewDidLoad 中执行此操作。

  2. 在 numberOfRowsInSection 中添加代码以检查哪些字段存在数据值。返回具有数据值的字段数的总数

  3. 再次在 cellForRowAtIndexPath 中,检查该字段的数据是否存在 如果存在,请检查是否已经创建了在第一步中创建的单元格(如果没有,则创建) 如果没有,增加某种计数器以增加标签值并找到下一个具有值的字段。找到后,使用该“标签/索引”编号“返回”正确的单元格。

最后,你有一个 UITableView 只显示带有数据的字段。

于 2012-08-11T15:25:21.907 回答