IOS 搜索条制作(UITextField 封装)

封装到 HMSearchBar.h / .m

#import <UIKit/UIKit.h>

@interface HMSearchBar : UITextField
+ (instancetype)searchBar;
@end
View Code
#import "HMSearchBar.h"

@implementation HMSearchBar

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // 设置背景
        self.background = [UIImage resizedImage:@"searchbar_textfield_background"];
        
        // 设置内容 -- 垂直居中
        self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        
        // 设置左边显示一个放大镜
        UIImageView *leftView = [[UIImageView alloc] init];
        leftView.image = [UIImage imageWithName:@"searchbar_textfield_search_icon"];
        leftView.width = leftView.image.size.width + 10;
        leftView.height = leftView.image.size.height;
        // 设置leftView的内容居中
        leftView.contentMode = UIViewContentModeCenter;
        self.leftView = leftView;
        
        // 设置左边的view永远显示
        self.leftViewMode = UITextFieldViewModeAlways;
        
        // 设置右边永远显示清除按钮
        self.clearButtonMode = UITextFieldViewModeAlways;
    }
    return self;
}

+ (instancetype)searchBar
{
    return [[self alloc] init];
}
@end
View Code

 控制器 调用 HMSearchBar

#import "HMDiscoverViewController.h"
#import "HMSearchBar.h"

@interface HMDiscoverViewController ()

@end

@implementation HMDiscoverViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    HMSearchBar *searchBar = [HMSearchBar searchBar];
    searchBar.width = 300;
    searchBar.height = 30;
    self.navigationItem.titleView = searchBar;
}
View Code
原文地址:https://www.cnblogs.com/liuwj/p/6641905.html