[转]UISearchBar

来源:互联网 发布:linux ftp 权限控制 编辑:程序博客网 时间:2024/06/06 02:26

 

属性作用UIBarStyle barStyle控件的样式id delegate设置控件的委托NSString *text控件上面的显示的文字NSString *prompt显示在顶部的单行文字,通常作为一个提示行NSString *placeholder半透明的提示文字,输入搜索内容消失BOOL showsBookmarkButton是否在控件的右端显示一个书的按钮(没有文字的时候)BOOL showsCancelButton是否显示cancel按钮BOOL showsSearchResultsButton是否在控件的右端显示搜索结果按钮(没有文字的时候)BOOL searchResultsButtonSelected搜索结果按钮是否被选中UIColor *tintColorbar的颜色(具有渐变效果)BOOL translucent指定控件是否会有透视效果UITextAutocapitalizationType
autocapitalizationType设置在什么的情况下自动大写UITextAutocorrectionType
autocorrectionType对于文本对象自动校正风格UIKeyboardType
keyboardType键盘的样式NSArray *scopeButtonTitles搜索栏下部的选择栏,数组里面的内容是按钮的标题NSInteger selectedScopeButtonIndex搜索栏下部的选择栏按钮的个数BOOL showsScopeBar控制搜索栏下部的选择栏是否显示出来

代理列表: 

 

编辑代理

 

  • – searchBar:textDidChange:
  • – searchBar:shouldChangeTextInRange:replacementText:
  • – searchBarShouldBeginEditing:
  • – searchBarTextDidBeginEditing:
  • – searchBarShouldEndEditing:
  • – searchBarTextDidEndEditing:

点击按钮

  • – searchBarBookmarkButtonClicked:
  • – searchBarCancelButtonClicked:
  • – searchBarSearchButtonClicked:
  • – searchBarResultsListButtonClicked:

范围代理

  • – searchBar:selectedScopeButtonIndexDidChange:


  

UISearchbar 常用代理方法

分类: IOS_UISearchBar2012-08-06 12:35 133人阅读 评论(0) 收藏 举报
UISearchBar  searchbar =[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
        searchbar.showsCancelButton=NO;
        searchbar.barStyle=UIBarStyleDefault;
        searchbar.placeholder=@"aaaaaa";
        searchbar.keyboardType=UIKeyboardTypePhonePad;
        
        [cell addSubview:searchbar];
        [searchbar release];


添加搜索框事件:
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    [searchBar setShowsCancelButton:YES animated:YES];
    self.tableView.allowsSelection=NO;
    self.tableView.scrollEnabled=NO;
}
添加Cancel事件:
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
    searchBar.text=@"";
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
}
添加搜索事件:
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    NSArray *results;
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
    [self.tableDate removeAllObjects];
    [self.tableDate addObjectsFromArray:results];
    [self.tableView reloadData];
}
最后绑定数据就是

复制数据的
-(void)resetSearch{
    self.names=[self.allNames mutabledeepCopy];
    NSMutableArray *keyArray=[[NSMutableArray alloc]init];
    keyArray addObjectsFromArray:[self.allNames allkeys]sortedAaa>>>>>:[[@selector(compare;) ]];
    self.keys=keyArray;
    [keyArray release];
}

实现搜索的
-(void)handleSearchForTerm:(NSString *)searchterm{
    NSMutableArray *s=[[NSMutableArray alloc]init];
    [self resetSearch];
    for (NSString *key in self.keys){
        NSMutableArray *array=[names valueForKey:key];
        NSMutableArray *toRemove=[[NSMutableArray alloc]init];
        for (NSString *name in array) {
            if([name rangeOfString:searchterm options:NSCaseInsensitiveSearch].location==NSNotFound)
                [toRemove addObject:name];
        }
        if ([array count]==[toRemove count]) {
            [s addObject:key];
            [array removeObjectsInArray:toRemove];
            [toRemove release];
        }
        [self.keys removeObjectsInArray:s];
        [s release];    
    } 
}

UISearchBar背景透明,去掉背景,自定义背景

分类: IOS_UISearchBar2012-08-06 10:59 131人阅读 评论(0) 收藏 举报

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

        }

    }


0 0
原创粉丝点击