我有tableview
个自定义单元格和搜索栏。我在单元格上标记了标签,因为我在该单元格上也有imageView
。
表格显示标签和图像,但在搜索中,方法viewWithTag似乎没有找到标记的标签。只要我在搜索栏中输入一个字符,视图就会清除,就好像没有找到带有标签100的单元格一样。 这是代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (tableView == self.searchDisplayController.searchResultsTableView) {
iKl_Stretch *stretchpb = [self.filteredStretchList objectAtIndex:indexPath.row];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.text = stretchpb.name;
return cell;
} else {
iKl_Stretch *stretchpb = [self.categoryStretchList objectAtIndex:indexPath.row];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.text = stretchpb.name;
}
return cell;
}
答案 0 :(得分:4)
我发现了什么问题: searchDisplayController返回自己的tableview,因此我的标记单元格在此视图中不存在。 要使用自定义单元格,必须替换该行:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
使用:
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
答案 1 :(得分:3)
也许标签是单元格contentView
的子视图。尝试
UILabel *nameLabel = (UILabel *)[cell.contentView viewWithTag:100];
另外,请检查您的searchDisplayController.searchResultsTableView
是否已正确设置。听起来好像你没有回来了。