簡體   English   中英

在一個 UIViewController 中同時可見多個 UITableView

[英]Multiple UITableViews visible at once in one UIViewController

我曾在一個視圖中看到有關多個 UITableViews 的問題,但它們一次只能看到一張表。 我在追求不同的東西。

在我的腦海中,我希望在一個 UIView 中的一個 UIScrollView 中可以看到四個 UITableView。 這四個表將立即可見並填充。 它們每個都有動態的行數,因此滾動視圖將允許用戶滾動頁面以查看不適合的行。

桌子將並排放置,然后在它們下方並排放置接下來的兩個,這樣您最終會得到一個 2x2 的正方形。

我可以(有點)想一想如何在控制器等中對此進行編碼,但我無法弄清楚如何組織層次結構。 我曾嘗試使用 storeboard 在視圖中布置表格,但 10 次嘗試刪除控件中有 9 次失敗,因為我顯然沒有完全理解這一點。

我是否需要在 UIViews 實現文件中生成 UITableViews 並將它們作為對象添加到 UIView? 或者我可以使用故事板嗎?

有人可以解釋一下對象的層次結構將如何構建嗎?

在我的腦海里它會是: UIViewController

- > UIView

---> UIScrollView

------> UITableView

------> UITableView

------> UITableView

------> UITableView

但是在 Storyboard 中嘗試這個是行不通的。 我假設每個 UITableView 都需要自己的 UITableViewController 以及我在其他帖子中閱讀的內容,我希望在 UIViewController 實現文件中進行連接。

任何幫助表示贊賞。

我想您可能會嘗試將 UITableViewController 拖到您的視圖控制器中,至少我沒有將 4 個表視圖添加到滾動視圖中的問題。

這是我添加它的方式

1.> 將滾動視圖控件拖到視圖控制器中

在此處輸入圖片說明

在此處輸入圖片說明

你的視圖控制器應該是這樣的:

在此處輸入圖片說明

2.> 將表格視圖控件拖入滾動視圖,並設置該表格視圖的大小和位置

在此處輸入圖片說明

在此處輸入圖片說明

你的視圖控制器應該是這樣的:

在此處輸入圖片說明

3.> 然后將所有其余的 3 個表格視圖拖到滾動視圖上

在此處輸入圖片說明在此處輸入圖片說明

但我想就你的情況提出幾點建議

  1. 沒有在同一個視圖控制器中使用那么多的表視圖,維護所有這些表在你的代碼中是混亂的。 總有比 4 表視圖更好的選擇,也許可以考慮集合視圖。 甚至分離使用流程。

  2. 如果我是你,我不會在滾動視圖中使用表格視圖,它們就像滾動視圖中的滾動視圖,如果你沒有很好地設計交互,它們變得非常難以使用。

  3. 如果你仍然想在同一個視圖控制器中使用四個表視圖,你需要額外注意你的表視圖數據源和委托。 非常小心地處理所有情況。

希望能幫到你。

Tableviews 是非常定制的滾動視圖。 我不會將其中的 4 個放在滾動視圖上,這對用戶來說不是很直觀,因為您的手指會根據它接觸屏幕的確切位置以多種方式滾動視圖。

相反,嘗試將 2x2 模式的 4 個 tableview 直接放在一個簡單的 UIView 上。 這可以在 Storyboard 中完成。

至於填寫和使用它們,您有兩種方法:

A) 你的 UIViewController 是 4 個 tableviews 的委托和數據源。 執行時,您對第一個參數(調用您的 tableview)執行 switch 以確定適當的操作過程。

B) 您創建了 4 個類,每個類都處理單個 tableview,在 UIViewController 中實例化 4 個對象,並將 UITableviews 的委托和數據源屬性分配給這些對象。

撇開所有技術問題不談,單個屏幕中的 4 個 tableview 非常擁擠。 你的設計肯定不會在 iPhone 上運行,所以我假設只有 iPad。 即便如此,您也應該確保所有內容都具有視覺吸引力,並且每個控件的目的都很明確。 這取決於您,但我討厭看到您在應用程序上努力工作卻發現您的努力白費,因為您的視覺設計對您的用戶沒有吸引力。

如果表格視圖占據了滾動視圖的整個區域,那么它們不會讓任何滾動事件經過包含它們的滾動視圖,除非滾動是水平的。

對於表視圖和視圖控制器之間的簡單一對一,我會將每個表視圖作為它自己的 UITableViewController 的一部分(所以你有四個),然后創建一個 UIViewController,將每個 UITableViewController 作為子項添加到它。

這樣你就不必對表視圖請求數據的 if 語句做任何花哨的邏輯,因為表視圖控制器只有一個表視圖。

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM