您好,登錄后才能下訂單哦!
有的時候我們一些自己寫的控件可能在以后的項目中會用到,這里我們就需要對其進行簡單的封裝就可以,方便以后的使用。
在許多視圖中都會用到搜索框,接下來我們就一封裝搜索框來說一下控件的封裝。
//創建搜索框 UITextField* searchBar = [[UITextField alloc]initWithFrame:CGRectMake(0,0,[UIScreen mainScreen].bounds.size.width,35)]; searchBar.placeholder =@"大家都在搜"; searchBar.font =[UiFont systemFontSize:13]; searchBar.background = [UIImage p_w_picpathWithStretchableName:@"圖片.png"]; //設置左邊的view UIImageView* p_w_picpathV;= [UIImageView alloc]initWithImage:[UIImage p_w_picpathd:@"搜索圖片"]; //MysearchBar* p_w_picpathV;= [MysearchBar alloc]initWithImage:[UIImage p_w_picpathd:@"搜索圖片"]; p_w_picpathV.width +=10; p_w_picpathV.contentMode = searchBar.leftView = p_w_picpathV; //想要顯示搜索框的視圖,一定要設置左邊視圖的模式 serchBar.leftViewMode = UITextFieldViewModeAlways;
//設置titleView為搜索框 self.navigationItem.titleView = searchBar;
這樣創建的搜索框是獨立的,在每次使用到的時候都需要在寫一遍,我們這里使用封裝思想,因為這個搜索框繼承自UITextField,所以我們寫一個自己的MysearchBar繼承自UITextField對其進行封裝。
類中實現如下方法:
-(instancetype)initWithFrame:(CGRect)frame { if(self = [super initWithFrame:frame]){ //拷貝上面代碼;只需要將searchBar改為self; searchBar.font =[UiFont systemFontSize:13]; searchBar.background = [UIImage p_w_picpathWithStretchableName:@"圖片.png"]; //設置左邊的view UIImageView* p_w_picpathV;= [UIImageView alloc]initWithImage:[UIImage p_w_picpathd:@"搜索圖片"]; p_w_picpathV.width +=10; p_w_picpathV.contentMode = searchBar.leftView = p_w_picpathV; //想要顯示搜索框的視圖,一定要設置左邊視圖的模式 serchBar.leftViewMode = UITextFieldViewModeAlways; } return self; }
當我們再次使用搜索框的時候,我們之間使用自己封裝的控件就行。如下所示:
-(void)viewDidlaod{ [super viewDidlaod]; MysearchBar* searchBar = [[MysearchBar alloc]initWithFrame:CGRectMake(0,0,[UIScreen mainScreen].bounds.size.width,35)]; searchBar.placeholder =@"大家都在搜"; //設置titleView為搜索框 self.navigationItem.titleView = searchBar; }
這樣就完成了一個控件的封裝和調用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。