UISearchDisplayController 及UISearch的使用

UISearchBar背景透明,去掉背景,自定义背景(转)

1.UISearchBar 的样式自定义

seachBar=[[UISearchBar allocinit];

//修改搜索框背景

seachBar.backgroundColor=[UIColor clearColor];

//去掉搜索框背景

//1.

[[searchbar.subviews objectAtIndex:0]removeFromSuperview];

//2.

for (UIView *subview in seachBar.subviews

{  

if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])

{  

[subview removeFromSuperview];  

break;  

}  

//3自定义背景

UIImageView *imageView = [[UIImageView allocinitWithImage:[UIImage imageNamed:@"40-di.png"]];

    [mySearchBar insertSubview:imageView atIndex:1];

    [imageView release];

//4输入搜索文字时隐藏搜索按钮,清空时显示

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {  

searchBar.showsScopeBar = YES;  

[searchBar sizeToFit];  

[searchBar setShowsCancelButton:YES animated:YES];  

return YES;  

}  

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {  

searchBar.showsScopeBar = NO;  

[searchBar sizeToFit];  

[searchBar setShowsCancelButton:NO animated:YES];  

return YES;  

}  

//改变搜索按钮文字

//改变UISearchBar取消按钮字体

for(id cc in [searchBar subviews])

    {

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

        {

            UIButton *btn = (UIButton *)cc;

            [btn setTitle:@"搜索"  forState:UIControlStateNormal];

        }

    }


seachBar=[[UISearchBar allocinit];

//修改搜索框背景

seachBar.backgroundColor=[UIColor clearColor];

//去掉搜索框背景

//1.

[[searchbar.subviews objectAtIndex:0]removeFromSuperview];

//2.

for (UIView *subview in seachBar.subviews

{  

if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])

{  

[subview removeFromSuperview];  

break;  

}  

//3自定义背景

UIImageView *imageView = [[UIImageView allocinitWithImage:[UIImage imageNamed:@"40-di.png"]];

    [mySearchBar insertSubview:imageView atIndex:1];

    [imageView release];

//4输入搜索文字时隐藏搜索按钮,清空时显示

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {  

searchBar.showsScopeBar = YES;  

[searchBar sizeToFit];  

[searchBar setShowsCancelButton:YES animated:YES];  

return YES;  

}  

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {  

searchBar.showsScopeBar = NO;  

[searchBar sizeToFit];  

[searchBar setShowsCancelButton:NO animated:YES];  

return YES;  

}  

//改变搜索按钮文字

//改变UISearchBar取消按钮字体

for(id cc in [searchBar subviews])

    {

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

        {

            UIButton *btn = (UIButton *)cc;

            [btn setTitle:@"搜索"  forState:UIControlStateNormal];

        }

    }


2.自定义UISearchDisplayController的“No Results“标签和”Cancel“按钮


Cancel:

 

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {

UISearchBar *searchBar = self.searchDisplayController.searchBar;

[searchBar setShowsCancelButton:YES animated:YES];

for(UIView *subView in searchBar.subviews){

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

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

}

}

}

No Results:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

{

[self filterContentForSearchText:searchString];

if ([filteredListPinYin count] == 0) {

UITableView *tableView1 = self.searchDisplayController.searchResultsTableView;

for( UIView *subview in tableView1.subviews ) {

if( [subview class] == [UILabel class] ) {

UILabel *lbl = (UILabel*)subview; // sv changed to subview.

lbl.text = @”没有结果”;

}

}

}

// Return YES to cause the search result table view to be reloaded.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值