所以我有一个包含部分和行的 tableView,它使用自定义单元格类。自定义单元格有一个图像视图和一些标签。表格视图工作正常,搜索工作正常,除了搜索不显示我的自定义单元格类中的任何标签,只显示具有正确图像的 imageView。我很困惑为什么会这样,特别是因为图像仍然显示,而不是标签。这是一些代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//TODO: problem with search view controller not displaying labels for the cell, needs fixing
JSBookCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil) {
cell = [[JSBookCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
JSBook *book = nil;
//uses the appropriate array to pull the data from if a search has been performed
if(tableView == self.searchDisplayController.searchResultsTableView) {
book = self.filteredTableData[(NSUInteger)indexPath.section][(NSUInteger)indexPath.row];
}
else {
book = self.books[(NSUInteger)indexPath.section][(NSUInteger)indexPath.row];
}
FFMetaData *data = [self.ff metaDataForObj:book];
cell.titleLabel.text = book.title;
cell.priceLabel.text = [NSString stringWithFormat:@"$%@", book.price];
cell.authorLabel.text = book.author;
cell.descriptionLabel.text = book.description;
cell.dateLabel.text = [self.formatter stringFromDate:data.createdAt];
if(book.thumbnail == nil) {
cell.imageView.image = [UIImage imageNamed:@"messages.png"];
[self setCellImage:cell withBook:book atIndex:indexPath withTableView:tableView];
}
else {
cell.imageView.image = [UIImage imageWithData:book.thumbnail];
}
return cell;
}
在这个问题之前,我在 tableView 中只有一个部分,并且一切正常。现在我有多个部分和行,正如我所描述的那样,搜索被破坏了。有任何想法吗?另外,因为[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
我曾经有[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
但现在如果我使用它,当我尝试搜索时会遇到一个奇怪的异常:
NSInternalInconsistencyException',原因:'在无效索引路径(2 个索引 [1, 1])处请求矩形'
所以这也让我感到困惑。谢谢您的帮助!