系統(tǒng)原生的UISearchBar在iOS 11經(jīng)歷了一次變革,高度由原來的44變成了56 (使用默認高度的估計都被坑了),樣式也發(fā)生了些微的變化,比如在未輸入狀態(tài)下圓角變化,放大鏡圖標和文本的文字不再居中而是靠左了。具體看圖
網(wǎng)站建設公司,為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制網(wǎng)站建設服務,專注于成都定制網(wǎng)站,高端網(wǎng)頁制作,對服務器托管等多個行業(yè)擁有豐富的網(wǎng)站建設經(jīng)驗的網(wǎng)站建設公司。專業(yè)網(wǎng)站設計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化排名優(yōu)化,H5建站,響應式網(wǎng)站。一些主流App也常見在導航欄嵌入searchBar,以網(wǎng)易云音樂和知乎為例,左邊是主頁,右邊是搜索頁面 (注意光標)。
實現(xiàn)思路與案例
核心思想是設置導航欄的titleView和左右的barButtonItem。主要有3種方式
為什么上面的titleView說是button不是其他的?其他的當然也可以實現(xiàn)。button自帶imageView和titleLabel,只需要設置偏移量更容易達到我們想要的,而且視圖層級更少,在流暢性方面更有保證些。
案例
網(wǎng)易云音樂首頁和搜索頁面的導航欄視圖層級,titleView都使用MCSearchBar來實現(xiàn),并且設置了導航欄左右兩邊的按鈕 。這類似上文所說的第二種思路。
圖中可以清楚看到知乎首頁導航欄由2個button組成,搜索頁面使用了textField,這類似上文提到的第三種思路。
實戰(zhàn)
通過自定義SearchBar實現(xiàn)一個如下樣式的導航欄
先自定義一個UISearchBar的初始化方法,觀察一下首頁和搜索頁的異同,像searchField的大小背景色是一致的,可以這部分可以直接給定,而placeholder是不一樣的,所以應該在調用的時候提供。以此類推,新建一個OHSearchBar類,一個初始化方法
- (instancetype)initWithFrame:(CGRect)frame placeholder:(NSString *)placeholder textFieldLeftView:(UIImageView *)leftView showCancelButton:(BOOL)showCancelButton tintColor:(UIColor *)tintColor { if (self = [super initWithFrame:frame]) { self.frame = frame; self.tintColor = tintColor; //光標顏色 self.barTintColor = [UIColor whiteColor]; self.placeholder = placeholder; self.showsCancelButton = showCancelButton; self.leftView = leftView; // 用來代替左邊的放大鏡 [self setImage:[UIImage imageNamed:@"clear"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal]; // 替換輸入過程中右側的clearIcon } return self; }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站名稱:iOS定制UISearchBar導航欄同步iOS11的方法-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article32/ejjsc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、ChatGPT、網(wǎng)站營銷、網(wǎng)站內鏈、關鍵詞優(yōu)化、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容