UISearchDisplayController “No Results“和 cancel按...

经过 查看UISearchDispalyController的delegate方法以及它自己属性 测试

了解到他的一些方法,而经过测试,No Results字符的更改放到 spa

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView;方法中更为好一些,我看到有朋友放到shouldreload方法中的 不过第一次仍是会显示NO Results 因此效果很差,可是我测试,delegate方法shouldreload方法是发生在willShowSearchResultsTableView以前的,可是为何更改默认的ResultsTableView的resultlable属性,shouldreload第一次不会改变,第二次执行shouldreload的时候就会显示“无结果”。 orm

可是若是你是在willShowSearchResultsTableView方法中更改的话,第一次就会显示效果。 it

一下是我写的  更改方法 table

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView class

{ 方法

    for (UIView *subview in tableView.subviews) { tab

        if ([subview isKindOfClass:[UILabel class]]) { view

            [(UILabel *)subview setText:@"无结果"]; vi

        }

    }

}

关于cancel的更改,原本是想在

viewDidLoad中加载但是,那样的话初始的searchbar就会存在那个cancel  button 视觉效果很差,因此我改在

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller中添加。

如下是更改代码

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller

{

    controller.searchBar.showsCancelButton = YES;

    for(UIView *subView in controller.searchBar.subviews)

    {

        if([subView isKindOfClass:[UIButton class]])

        {

            [(UIButton*)subView setTitle:@"取消" forState:UIControlStateNormal];

        }

    }

}

相关文章
相关标签/搜索