在UITableViewDataSource
方法,我檢查,看看是否我有數據:DeqeueReusableCellWithIdentifier重疊兩個小區
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
if (data.count == 0)
{
return 1; //This one cell will be of type NoDataTypeCell
} else {
return data.count //These cells will be of type DataTypeCell
}
}
在
cellForRowAtIndexPath
所以檢查要使用哪種類型的細胞,以同樣的方式:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
SAFindSuggestedTableViewCell* dataCell = (SAFindSuggestedTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"hasDataIdentifier" forIndexPath:indexPath];
if (data.count == 0)
{
NODataTypeCell* cellNoData = (NODataTypeCell*)[tableView dequeueReusableCellWithIdentifier:@"noDataIdentifier];
//Setup the noDataCell
return cellNoData;
} else {
return dataCell;
}
}
這會導致我從未見過的東西。正如所料,我的控制器加載的數據是空的。結果,1個NODataTypeCell被出隊。
數據進來後,TableView被重新加載。
numberOfRowsInSection
回報data.count
cellForRowAtIndexPath
不返回noDataCell
,它返回data.count
量dataCells
除了我的tableView仍然有noDataCell。最奇怪的部分?它直接在tableView的第一個單元格上。單元格是不可選的,並且使單元格不可選。它沒有數據,因爲它尚未設置。但它在那裏,它不會消失。
我在做什麼錯?
這裏是單元格後面的視圖調試器透視圖。你可以清楚地看到,有兩個單元的第一行,只有一個在第二行單元格
您是否嘗試將SAFindSuggestedTableViewCell的出列轉移到else子句?因爲即使你沒有返回要呈現的dataCell,看起來好像出列進程並沒有處理好更好的出列。 – CStreel
@CStreel這是當我按照你的建議時拋出的錯誤:由於未捕獲的異常'NSInvalidArgumentException',原因:' - [_ UITableViewReorderingSupport _needsSetup]:無法識別的選擇器發送到實例0x148b4b6d0' – YichenBman