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];

        }

    }

}

相關文章
相關標籤/搜索