iOS中的“紧凑”视图

时间:2012-08-11 15:08:25

标签: ios layout

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

所以,我在我的视图中有这样的组件布局:     

UITextField1(名称)

    

UITextField2(位置)

    

UITextField3(年龄)

    

UITextView1(Bio)

    

UITableView(用户条目)。

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

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

我只能看到两种解决方法:

  1. 创建一个遍历所有UIViews并确定哪些是空白的函数并移动下面的上部。
  2. 创建UITableView并对内容为空的单元格使用不同的单元格高度。
  3. 理想情况下会有一个组件,但我找不到它(基本上是某种堆栈/流程布局)。

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

    感谢。

1 个答案:

答案 0 :(得分:1)

通过使用UITableView而不是你提出的方式,我会更倾向于你的第二选择方向。

这是我使用UITableView的方法:

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

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

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

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