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

IOS--常用控件--UISearchBar和UISearchDisplayController

2015-03-04 15:53 417 查看
一、UISearchBar单独使用时,设置样式:

UIView *view =[mySearchBar.subviews objectAtIndex:0];

// view.backgroundColor =[UIColor clearColor];

for (UIView *backview in view.subviews) {

if ([backview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {

[backview removeFromSuperview];

break;

}

}

二、UISearchBar和UISearchDisplayController结合使用时:

关于代理

// searchResultsDataSource 就是 UITableViewDataSource
searchDisplayController.searchResultsDataSource = self;
// searchResultsDelegate 就是 UITableViewDelegate
searchDisplayController.searchResultsDelegate = self;

别忘了这个:

searchDisplayController.delegate = self;


如果想设置 cancelbutton的颜色:

searchBar.tintColor = [UIColor whiteColor];


如果想设置 cancelbutton的字体: 在IOS7下这样设置:

-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{
self.searchDisplayController.searchBar.showsCancelButton = YES;
UIButton *cancelButton;
UIView *topView = self.searchDisplayController.searchBar.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton"))]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton) {
//Set the new title of the cancel button
[cancelButton setTitle:@"Annuller"forState:UIControlStateNormal];
}
}

在IOS5/6下这样设置:

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{
self.searchDisplayController.searchBar.showsCancelButton = YES;
UIButton *cancelButton = nil;
for (UIView *subView in self.searchDisplayController.searchBar.subviews) {
if ([subView isKindOfClass:UIButton)]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton){
//Set the new title of the cancel button
[cancelButton setTitle:@"Annuller"forState:UIControlStateNormal];
}
}


如果想设置 UISearchBar的背景颜色可以这样设置:

searchDisplayController.searchBar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"nav_bg"]];


设置UISearchDisplayController是否激活: eg:当我点击 搜索列表 的时候,我想让 searchbar恢复原状,即导航栏也恢复原状时;

[searchDisplayController setActive:NO animated:YES];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐