2013-04-25 38 views
23

現在有一個full support for KVO,有人提出了一個可變的表視圖,它將RACSignal作爲其dataSource?理想情況下,不需要任何配置。有沒有人根據RACSignal自我更新可變表格視圖?

RACSignal *commentsSignal; 
UITableView *table = [UITableView new]; 
table.dataSourceSignal = commentsSignal; 
[self.view addSubview:table]; 
// No more basic config 
+1

表視圖的內容不僅僅是對象的集合,還有更多:高度,部分,標題,自定義單元格...因此,您需要做更多的事情才能完全配置表視圖。 – Tricertops 2013-07-03 17:55:55

+0

如果您只是要求重新加載,插入,刪除和移動單元格,那麼這就是我通常所做的,但是又一次:每個表格都如此不同,以至於我沒有找到通用的例子。 – Tricertops 2013-07-03 17:59:13

+0

對不起,這個問題是關於數據和收集觀察員,而不是外觀。使用ReactiveCocoa,Nimbus和[CueTableReloader](https://github.com/Cue/CueTableReloader)之類的東西,你可以創建一個表格視圖,當你改變模型集合時,它自動重新排列,所有這些都在大約4行代碼中。 – Michael 2013-07-03 19:34:48

回答

2

是的,我已經創建了一個綁定表視圖到的信號的「綁定幫手」:

http://www.scottlogic.com/blog/2014/05/11/reactivecocoa-tableview-binding.html

可以使用它來的信號結合,其中所述細胞是在筆尖定義,如下所示表視圖:

// create a cell template 
UINib *nib = [UINib nibWithNibName:@"CETweetTableViewCell" bundle:nil]; 

// bind the ViewModels 'searchResults' property to a table view 
[CETableViewBindingHelper bindingHelperForTableView:self.searchResultsTable 
         sourceSignal:RACObserve(self.viewModel, searchResults) 
         templateCell:nib]; 

在上面的示例中,表格視圖通過RACObserve(self.viewModel, searchResults)綁定到視圖模型上的NSArray屬性,但是發出數組的任何RACSignal都可以很好地綁定。

+0

我一直在尋找一些完全支持可變數據的東西,所以我沒有選擇你的答案。我也拒絕了Holler的回答,因爲我找不到他所談論的類別,而RC 3.0還沒有發佈。 – Michael 2014-09-15 18:02:28

+0

沒問題 - 你提到你正在尋找「完全支持可變數據」的東西。我只是想知道你是否可以擴大一點?你想支持什麼特定場景? – ColinE 2014-09-15 20:23:02

+0

從源數組中添加和刪除都應該導致適當的表格單元格動畫。混合批量添加/刪除還應該在表上調用'beginUpdates'和'endUpdates'。 – Michael 2014-09-16 17:58:50