2012-08-11 97 views
0

我在iOS(iPhone)中有一個視圖,它具有多個組件,按堆棧方式(下一個頂層)組織。這些是用戶帳戶屬性,有些可能是空白的。iOS中的「緊湊」視圖

所以,我有我的觀點的元件佈局是這樣的:

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併爲內容爲空的單元格使用不同的單元高度。

理想情況下會有一個組件,但我找不到它(基本上是某種堆棧/流佈局)。無論如何,我相信我會執行上面的選項#1,但我不知道是否有一個「標準」的方式來完成此任務(我老實說,甚至不知道適當的術語來看看爲此功能)。

謝謝。

回答

1

我會通過使用UITableView而不是您建議的方式來更傾向於您的第二選擇的方向。

這將使用一個UITableView是我的方法:

  1. 我 每一個部件創建一個UITableViewCell(或自定義單元格),並指定一個標籤值每,我們將在以後使用這些。你可以在viewDidLoad中做到這一點。

  2. 在numberOfRowsInSection中添加代碼,以檢查哪些字段有數據值存在 。返回總數領域 數量的數據再次值

  3. 在的cellForRowAtIndexPath,檢查是否存在該字段 如果是這樣的數據,檢查,看看是否在步驟中創建的小區中的一個已經創建或不(如果不是,則創建) 如果不是,則增加某種計數器以增加標記值並找到具有值的下一個字段。一旦找到,使用該「標籤/索引」號碼來「返回」適當的單元格。

最後,你有一個UITableView只顯示數據字段。

+0

謝謝。我的問題是,我的佈局中的部分組件是tableviews(滾動)。所以,如果我這樣做,我將不得不允許所有字段的滾動(我不想要的),或從桌面視圖中移除滾動。 – rufo 2012-08-13 13:39:58

+0

所以你有多個表格視圖一次顯示?如果是這樣,爲什麼不使用具有多個部分的單個表視圖? – radesix 2012-08-14 20:15:01

+0

因爲佈局比這更復雜。我有帶按鈕的「線條」,帶有小字體的3個標籤的行,帶有2個標籤的行等等。底部有一個UITableView。我可以爲每種情況實現所有的UITableViewCells,但聽起來像很多工作。 – rufo 2012-08-15 03:28:48