IOS在UISearchDisplayController里定义取消按钮和去掉No Result

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
searchDisplayController.searchBar.backgroundColor = [UIColor whiteColor];
searchDisplayController.searchBar.showsCancelButton = YES;
//定义取消按钮
/*
 *ios7与ios6方法不同
 */
if (IOS7_OR_LATER) {
    for (id searchbutton in mySearchBar.subviews)
    {
        UIView *view = (UIView *)searchbutton;
        UIButton *cancelButton = (UIButton *)[view.subviews objectAtIndex:2];
        cancelButton.enabled = YES;
        [cancelButton setTitle:@"取消"  forState:UIControlStateNormal];//文字
        break;
    }
}else
{
    for(id cancelButton in [searchDisplayController.searchBar subviews])
    {
        if([cancelButton isKindOfClass:[UIButton class]])
        {
            UIButton *btn = (UIButton *)cancelButton;
            [btn setTitle:@"取消"  forState:UIControlStateNormal];
        }
    }
}
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
//去除 No Results 标签
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.001);
dispatch_after(popTime, dispatch_get_main_queue(), ^{
    for (UIView *subview in controller.searchResultsTableView.subviews) {
        if ([subview isKindOfClass:[UILabel class]] && ([[(UILabel *)subview text] isEqualToString:@"No Results"] || [[(UILabel *)subview text] isEqualToString:@"无结果"])) {
            [subview removeFromSuperview];
            break;
        }
    }
});
return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容