UISearchBar设置技巧(输入框,取消按钮等背景设置)
2017-07-31 18:36
1581 查看
1. 设置光标和输入框的颜色
self.searchBar.tintColor = [UIColor blueColor]; [self.mySearchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"searchBarFieldBackground"] forState:UIControlStateNormal];
2. 修改placeHolder的文字颜色
for (UIView* subview in [[searchBar.subviews lastObject] subviews]) { if ([subview isKindOfClass:[UITextField class]]) { UITextField *textField = (UITextField*)subview; //修改输入字体的颜色 textField.textColor = [UIColor redColor]; //修改输入框的颜色 [textField setBackgroundColor:[UIColor grayColor]]; //修改placeholder的颜色 [textField setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"]; } else if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { [subview removeFromSuperview]; } }
3. 修改UISearchBar的取消按钮背景、搜索内容输入文本框背景和UISearchBar的背景
(1)、添加UISearchBar到父ViewUISearchBar *searchBar = [[UISearchBar alloc]init]; searchBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44); searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; searchBar.delegate = self; searchBar.placeholder = @"请输入搜索内容"; [self.view addSubview:searchBar];
(2)、修改搜索框背景
UIImage *img = [UIImage resizedImage:@"find_bg.png"]; [_searchBar setBackgroundImage:img];
(3)、修改搜索输入框内左侧的指示图标
[_searchBar setImage:[UIImage resizedImage:@"ic_search.png"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
(4)、修改搜索输入文本的背景
[_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"login_btn_input_side.png"] forState:UIControlStateNormal];
注:对于设计人员提供的搜索输入文本的背景,若提供的是一个圆角的小方块,按常理我们会使用拉伸图片的中间部分的方法,经测试显示效果如下:
若让设计人员重新提供一张固定高度的图片(比如高是60),当做搜索输入文本的背景,效果图如下:
(5)、修改UISearchBar右侧的取消按钮文字颜色及背景图片
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { [searchBar setShowsCancelButton:YES animated:YES]; // 修改UISearchBar右侧的取消按钮文字颜色及背景图片 for (UIView *searchbuttons in [searchBar subviews]){ if ([searchbuttons isKindOfClass:[UIButton class]]) { UIButton *cancelButton = (UIButton*)searchbuttons; // 修改文字颜色 [cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; // 修改按钮背景 [cancelButton setBackgroundImage:[UIImage resizedImage:@"login_btn_login.png"] forState:UIControlStateNormal]; [cancelButton setBackgroundImage:nil forState:UIControlStateHighlighted]; } } } 注:修改取消按钮文字颜色及背景图片的代码片段,一定要放到取消按钮会显示代理方法中修改,否则遍历找不着呀,那就修改不了了。
4. 将UISearchBar放入导航栏的方法:
(1).通过navigationItem.titleViewUISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(5.0f,20.0f,WCScreenW -10.0f,44.0f)]; searchBar.delegate = self; [searchBar setPlaceholder:@"搜索"]; //将搜索条放在一个UIView上 UIView *searchView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, WCScreenW, 64)]; searchView.backgroundColor = [UIColor clearColor]; [searchView addSubview:searchBar]; self.navigationItem.titleView = searchView;
(2).自己再添加一个NavigationBar
self.navigationController.navigationBar.hidden = YES; UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 64)] ; navigationBar.barTintColor = [LYCCUISetting getInstance].colorTopView; [self.view addSubview:navigationBar]; [navigationBar addSubview:self.searchBar];
相关文章推荐
- 修改IOS中UISearchBar的取消按钮背景、搜索内容输入文本框背景和UISearchBar的背景
- 修改IOS中UISearchBar的取消按钮背景、搜索内容输入文本框背景和UISearchBar的背景
- UISearchBar 取消按钮中文设置
- UISearchBar 自定义,加背景,取消按钮背景
- iOS UISearchBar 设置光标颜色和取消按钮颜色
- 自定义UISearchBar背景、边框、左侧图标、删除图标、取消按钮
- 修改IOS中UISearchBar的取消按钮背景、搜索内容输入文本框背景和UISearchBar的背景
- 改变UISearchBar上默认的取消按钮
- UISearchBar改变输入框的背景颜色
- jquery 设置输入框背景样式透明,按钮背景样式保存不变
- 替换UISearchBar的取消按钮
- 关于UISearchBar背景完全透明设置的代码
- iOS UISearchController中 如何改变UISearchBar中取消按钮的颜色和字
- iOS6下修改UISearchBar的输入框背景去除阴影,并设置成iOS7风格
- UISearchBar输入框颜色设置,文字颜色设置
- UISearchBar--改变内部输入框的背景颜色
- iOS6下修改UISearchBar的输入框背景去除阴影,并设置成iOS7风格
- UISearchBar cancel 按钮设置文本
- iOS 通过设置颜色去除UISearchBar的灰色背景
- UIsearchBar怎么将canal改为取消,怎么点击取消按钮将键盘和searchbar复原