1. 程式人生 > >使用UITextField自定義UISearchBar

使用UITextField自定義UISearchBar

有的時候,使用iOS自帶的控制元件不符合變態產品狗的需求時,我們只好自定義控制元件來滿足他們。在此處,我們通過建立一個GUSearchBar類,繼承自UITextField類來自定義搜尋框。


建立GUSearchBar

程式碼如下:GUSearchBar.h

#import <UIKit/UIKit.h>
@interface GUSearchBar : UITextField

+(instancetype) searchBar;

@end

GUSearchBar.m

#import "GUSearchBar.h"

@implementation GUSearchBar
-(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.contentMode = UIViewContentModeCenter; self.leftView = leftView; self
.leftViewMode = UITextFieldViewModeAlways; self.clearButtonMode = UITextFieldViewModeAlways; self.placeholder = @"搜尋"; } return self; } +(instancetype) searchBar { return [[self alloc] init]; } @end

注意:上述有類似leftView.width,leftView.height這樣的語法是使用了自定義UIView的擴充套件分類,詳情請點選UIView擴充套件

使用

GUSearchBar *searchBar = [[GUSearchBar alloc] init];
searchBar.width = 350;
searchBar.height = 30;

self.navigationItem.titleView = searchBar;

使用效果


GUSearchBar