1.自定义SearchBar
通过继承UITextField来自定义SearchBar:
#import <UIKit/UIKit.h>
@interface MRSearchBar : UITextField
+ (instancetype)searchBar;
@end
#import "MRSearchBar.h"
#import "UIImage+MJ.h"
@interface MRSearchBar()
@property (nonatomic ,weak) UIImageView *iconView;
@end
@implementation MRSearchBar
+ (instancetype)searchBar
{
return [[self alloc]init];
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//背景
self.background = [UIImage resizedImageWithName:@"searchbar_textfield_background"];
//左边放大镜图标
UIImageView *iconView = [[UIImageView alloc]initWithImage:[UIImage imageWithName:@"searchbar_textfield_search_icon"]];
iconView.contentMode = UIViewContentModeCenter;
self.leftView = iconView;
self.leftViewMode = UITextFieldViewModeAlways;
self.iconView = iconView;
//字体
self.font = [UIFont systemFontOfSize:13];
//右边的清除按钮
`
//设置提醒文字
NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
attrs[NSForegroundColorAttributeName] = [UIColor grayColor];
self.attributedPlaceholder = [[NSAttributedString alloc]initWithString:@"搜索" attributes:attrs];
//设置键盘右下角按钮样式
self.returnKeyType = UIReturnKeySearch;
self.enablesReturnKeyAutomatically = YES;
}
return self;
}
- (void)layoutSubviews
{
[super layoutSubviews];
//设置左边图标位置
self.leftView.frame = CGRectMake(0, 0, 30, self.frame.size.height);
}
@end
2.在MRDiscoverViewController中添加SearchBar
- (void)viewDidLoad {
[super viewDidLoad];
//设置搜索框
MRSearchBar *searchBar = [MRSearchBar searchBar];
searchBar.frame = CGRectMake(0, 0, 300, 30);
self.navigationItem.titleView = searchBar;
}