使用searchDisplayController时我如何更改标签“无结果”,?
问候
使用searchDisplayController时我如何更改标签“无结果”,?
问候
这是不能直接访问,所以你必须做的老式方法,并通过你的子视图手动筛选searchDisplayController.searchResultsTableView
。 这里有一个例子:
UITableView *tableView = self.searchDisplayController.searchResultsTableView;
for( UIView *subview in tableView.subviews ) {
if( [subview class] == [UILabel class] ) {
UILabel *lbl = (UILabel*)subview; // sv changed to subview.
lbl.text = @"My custom string";
}
}
我不建议这一点,因为你依靠的内部行为searchResultsTableView
比有可能会在某个时候发生改变,破坏你的应用程序更多。 打开一个bug /功能请求与苹果是去这里的好方法。
我已经成功地通过永远不必查询结果为空去除的标签。
如果没有结果,因为他们是从服务器被提取,数据源重置为单行,并将它显示一个空白表视图单元格。
此外,使用逻辑来refeuse选择“虚拟”细胞:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row];
if ([listItem isEqualToString:@""]) {
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
}
我也认为有必要增加“虚拟”元逻辑到willSelect
委托方法:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row];
if ([listItem isEqualToString:@""]) {
return nil;
}
return indexPath;
}