2014-01-25 38 views
4

我正在構建一個呈現大多數屏幕中的表格視圖的應用程序。他們提供了一些不同的表格視圖單元格,但在表格視圖的3/5中有一個。這個單元顯示一個視頻,併爲用戶提供了一個與視頻交互的界面(比如,評論,標誌,刪除,播放/暫停等),它有一個相當大的代表,具有七種方法/功能。當涉及到可重用的UITableViewCell和委託時,最佳實踐是什麼?

我的問題是:
難道是設立一個單獨的控制器,這將是我的視圖控制器的屬性被指定爲代表的細胞,或子類與方法UITableViewController已經是最好的做法實施?

我後面看到的問題是,我將不得不實現一種奇怪的方式來處理數據源(設置方法返回模型,始終確保視頻存儲在該數組中),前者只是對標準的MVC實踐看起來有點奇怪。有什麼建議?

更新

我就開始分解出使用實現細胞的協議的數據源。我似乎遇到了正在顯示多個單元格的另一個問題,即:

我有一個searchDisplayController顯示UserCell的和VideoCell的基礎上,搜索欄的selectedScopeIndex。我可以處理這種情況的一種方式是爲此tableView創建一個處理這兩種情況的數據源,或者根據selectedScopeIndex的更改更換數據源。兩種選擇中的任何一種都被看不起?交換表視圖的數據源是否有效?

+1

你的問題對我來說不是100%清楚,如果你在很多地方有相同的單元格,你可能想在你的類中外化你的UITableViewDataSource,這樣可以在需要的地方重新使用,你是要求一些方向去做? – Daniele

+0

我已經拿出了數據源,並且由於涉及表格視圖單元格播放視頻的複雜性(在視圖控制器視圖中播放/暫停某些Y值,推送控制器,觸發用戶界面事件等) – HighFlyingFantasy

回答

0

我通過實施一個UITableViewDataSource控制器解決了這個問題,該控制器也處理單元的委託。我能夠將7方法委託縮短爲數據源上的3方法委託,用於推送新控制器,從數據模型中刪除對象以及處理淡入淡出/更新。

當然,我需要通過參考UITableView,所述UIView,並且源UIViewControllerUIStoryboard,但是代碼是更可讀和可管理的。

+0

這很好,如果這對你有用。但一般來說,由於數據源是用於整個'UItableView'的,因此在不同的表上重用單個單元格不太靈活。 – onegray

+0

它建立在我使用的數據源類的頂部,它使用塊來設置單元格,只是在一個子類中實現了單元格的委託 – HighFlyingFantasy

相關問題