2017-10-19 36 views
2

我有這樣 enter image description here如何佈局有很多的tableview細胞和自動佈局constrainsts複雜的圖,其中故事板失敗

enter image description here

基本上是一個觀點是大量靜態的tableview細胞,其中每個單元具有的水平滾動視圖和堆棧視圖。現在在故事板中嘗試使用它已經完全放慢了速度,在Xcode 9中添加或刪除約束或僅更改標籤文本需要超過30秒,並且總是有一個旋轉的沙灘球。 什麼是我可以減少系統過載或使故事板快一點的方法。
或者移動到代碼中佈置視圖更好嗎?在這種情況下,這方面的任何幫助/建議將受到高度的歡迎。 在此先感謝您的努力。

Here is the link to GitHub repo for the same

+0

我知道這很令人沮喪。但我認爲你幾乎無法做任何事情。視圖層次和佈局越多,它變得越慢。而且請放心,'UITablewView'裏面的'UIStackView'肯定會讓屁股變得如此痛苦。 –

+0

將它分爲多個xib,然後在代碼中組合,這會比將所有內容放在單個故事板中更好 – Tj3n

+0

我必須從用戶那裏獲得大量輸入,並且如果將它分離爲多個xib,我必須使用大量和大量自定義將數據傳遞到視圖控制器和後續計算以及傳遞數據的代表。在這種情況下,對於每個單元,一部分單元用於輸入,另一部分用於輸出。 –

回答

0

你應該使用一些原型細胞,而不是重複幾乎完全相同的靜態細胞。這裏最多有6種獨特類型的細胞。例如,輸入A,D,E是相同的。輸入B,C,F是相同的。

解釋如何詳細地做這件事超出了問題的範圍,但基本過程如下。

假設您想要添加一個可用於輸入B,C和F的原型單元格。這是您最基本的輸入單元格,它將具有一個文本字段。

  1. 向您的項目添加一個從UITableViewCell繼承的新類。 將它命名爲BasicInputCell
  2. 打開故事板,選擇您的表格視圖並打開屬性檢查器。將原型單元格設置增加1. Xcode將在故事板中的表格視圖中添加原型單元格
  3. 選擇原型單元格並打開「標識」檢查器。將類名稱設置爲您的單元格的名稱,BasicInputCell
  4. 打開屬性檢查器並將標識符設置爲相同的值,以便您可以按此名稱將其列出。
  5. 將文本字段添加到故事板中的單元格。打開助理編輯器並控制從文本字段拖到您的課程以創建一個IBOutlet。
  6. 根據需要重複儘可能多的獨特細胞類型。根據需要使用不同的控件自定義每個單元格類型,例如日期選擇器。

在您的表視圖控制器中,根據索引路徑將所需類型的單元出列。

+0

是的,我同意。怎麼做 。我應該使用故事板還是在代碼中進行佈局。我現在傾向於使用代碼,但根據Apple自動佈局指南,只有在完全確信無法通過故事板正確佈置視圖時,才應使用編碼。我想就如何做到這一點提供一些建議。 –

+0

我會推薦一個故事板。看到我更新的答案。祝你好運! –