创建equipmentSearch视图View
#import <UIKit/UIKit.h>
@interface equipmentSearch : UISearchBar
@property (strong,nonatomic) UITextField *searchTextField;
- (id)initWithFrame:(CGRect)frame placeholder:(NSString *)placeholder;
@end
#import "equipmentSearch.h"
@interface equipmentSearch()
<
UITextFieldDelegate
>
@property (strong,nonatomic) UILabel *searchLabel;
@end
@implementation equipmentSearch
- (id)initWithFrame:(CGRect)frame placeholder:(NSString *)placeholder{
self = [superinitWithFrame:frame];
self.tintColor = [UIColorcolorWithRed:0.262green:0.515blue:1.000alpha:1.000];
self.searchBarStyle =UISearchBarStyleMinimal;
NSMutableString *blankString = [[NSMutableStringalloc] init];
int numberOfBlankCharacter = frame.size.width *0.2;
for (int i =0; i < numberOfBlankCharacter; i++) {
//根据searchBar的长度计算应该插入多少个空格占位
[blankString appendString:@" "];
}
self.placeholder = blankString;
self.backgroundColor = [UIColorcolorWithWhite:0.94alpha:1.0];
self.searchTextField = [selfvalueForKey:@"searchField"];
self.searchTextField.delegate =self;
self.searchLabel = [[UILabelalloc]initWithFrame:CGRectMake(30,0, 255,30)];
self.searchLabel.textColor = [UIColorcolorWithWhite:0.418alpha:0.650];
self.searchLabel.font = [UIFontsystemFontOfSize:14];
self.searchLabel.text = placeholder;
[self.searchTextFieldaddSubview:self.searchLabel];
return self;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
[self.searchLabelsetHidden:YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
if (textField.text.length ==0) {
[self.searchLabelsetHidden:NO];
}
}
@end
使用
< UISearchBarDelegate >
@property (nonatomic,strong)NSString *searchText;
@property (nonatomic)BOOL isSearch;//判断是否在搜索
@property (nonatomic,retain)NSMutableArray *resultArr; //搜索出的结果
_searchBar=[[equipmentSearch alloc]initWithFrame:CGRectMake(0,0, Common_Distance_ScreenWidth, 40) placeholder:@"请输入需要添加的设备名称"];
_searchBar.delegate = self;
[self.viewaddSubview:self.searchBar];
#pragma mark - searchBarDelegate
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if (searchText.length == 0) {
_searchText = @"";
self.isSearch = NO;
[self.tableView reloadData];
}
[_resultArr removeAllObjects];
for (NSString *searchStr in _arr) {
if ([searchStr rangeOfString:searchText].location != NSNotFound) {
[_resultArr addObject:searchStr];
}
}
if (_resultArr.count) {
self.isSearch = YES;
[self.tableView reloadData];
}
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
return YES;
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
self.isSearch = NO;
}