您的位置:首页 > 产品设计 > UI/UE

UISearchDisplayController “No Results“和 cancel按...

2013-07-19 00:00 423 查看
通过 查看UISearchDispalyController的delegate方法以及它本身属性

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

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

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

一下是我写的 更改方法

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

{

for (UIView *subview in tableView.subviews) {

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

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

}

}

}

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

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息