




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】iOS定制UISearchBar導(dǎo)航欄同步iOS11的方法
系統(tǒng)原生的UISearchBar在iOS11經(jīng)歷了一次變革,高度由原來(lái)的44變成了56(使用默認(rèn)高度的估計(jì)都被坑了),樣式也發(fā)生了些微的變化,比如在未輸入狀態(tài)下圓角變化,放大鏡圖標(biāo)和文本的文字不再居中而是靠左了。具體看圖一些主流App也常見(jiàn)在導(dǎo)航欄嵌入searchBar,以網(wǎng)易云音樂(lè)和知乎為例,左邊是主頁(yè),右邊是搜索頁(yè)面(注意光標(biāo))。實(shí)現(xiàn)思路與案例核心思想是設(shè)置導(dǎo)航欄的titleView和左右的barButtonItem。主要有3種方式為什么上面的titleView說(shuō)是button不是其他的?其他的當(dāng)然也可以實(shí)現(xiàn)。button自帶imageView和titleLabel,只需要設(shè)置偏移量更容易達(dá)到我們想要的,而且視圖層級(jí)更少,在流暢性方面更有保證些。案例網(wǎng)易云音樂(lè)首頁(yè)和搜索頁(yè)面的導(dǎo)航欄視圖層級(jí),titleView都使用MCSearchBar來(lái)實(shí)現(xiàn),并且設(shè)置了導(dǎo)航欄左右兩邊的按鈕。這類似上文所說(shuō)的第二種思路。
圖中可以清楚看到知乎首頁(yè)導(dǎo)航欄由2個(gè)button組成,搜索頁(yè)面使用了textField,這類似上文提到的第三種思路。實(shí)戰(zhàn)通過(guò)自定義SearchBar實(shí)現(xiàn)一個(gè)如下樣式的導(dǎo)航欄先自定義一個(gè)UISearchBar的初始化方法,觀察一下首頁(yè)和搜索頁(yè)的異同,像searchField的大小背景色是一致的,可以這部分可以直接給定,而placeholder是不一樣的,所以應(yīng)該在調(diào)用的時(shí)候提供。以此類推,新建一個(gè)OHSearchBar類,一個(gè)初始化方法新建一個(gè)首頁(yè)OHHomeViewController,設(shè)置導(dǎo)航欄的titleView和rightBarButton讓我們來(lái)看下效果,左邊為iOS9,右邊iOS11這時(shí)候可以看到幾處差異解決方法:第一和第二個(gè)問(wèn)題,判斷設(shè)備是否是iOS11,若是則設(shè)置其高度,不是則讓其placeholder居左。關(guān)鍵代碼如下對(duì)于第三和第四個(gè)問(wèn)題,用KVC獲取textField,并對(duì)其進(jìn)行定制。令textField位置、大小、圓角一致。同樣的,先看下運(yùn)行效果原本以為這下是沒(méi)什么問(wèn)題的,結(jié)果簡(jiǎn)直是坑textFild的長(zhǎng)度、位置、圓角都不一樣解釋下這里出現(xiàn)的問(wèn)題觀察上方圖片上方的searchBar,會(huì)發(fā)現(xiàn)textField左邊是圓角,右邊是直角,說(shuō)明是被截取的。導(dǎo)航欄titleView的范圍就劃分到了那個(gè)部分,而下邊的searchBar連rightBarButton都不放過(guò),直接搶占了位置。推測(cè)這是由于iOS11導(dǎo)航欄視圖層級(jí)變化產(chǎn)生的,可以這里了解下/p/352f101d6…,或者自行科普,不詳細(xì)展開(kāi)。所以對(duì)于searchBar的size設(shè)置要小心了,盡量控制在合適的范圍。textField的圓角是不一致的,自定義圓角大小時(shí),取消其本身的圓角樣式查看視圖層級(jí)會(huì)發(fā)現(xiàn),iOS11以下,設(shè)置titleView,x的默認(rèn)坐標(biāo)居然是12,而iOS11是0。所以設(shè)置textField的x坐標(biāo)的話,在iOS11下必須多出12才會(huì)是一致的位置。
修改代碼上面的代碼這時(shí)候就是我們想要的結(jié)果了。首頁(yè)暫時(shí)告一段落,接著開(kāi)始我們的搜索頁(yè)面。與首頁(yè)不同的是需要searchBar與searchController配合使用。新建一個(gè)OHSearchController類添加一個(gè)屬性初始化代碼接著是我們的視圖控制器OHSearchViewController完成這一步后到了交互環(huán)節(jié)了,點(diǎn)擊首頁(yè)的searchBar跳轉(zhuǎn)搜索頁(yè)面,點(diǎn)擊搜索頁(yè)面的取消按鈕返回到首頁(yè)。首頁(yè)設(shè)置searchbar的代理,并完成一下代理方法搜索頁(yè)設(shè)置searchbar的代理,并完成一下代理方法這時(shí)候問(wèn)題又出現(xiàn)了,點(diǎn)擊搜索頁(yè)面的取消按鈕,沒(méi)有跳回首頁(yè)而是還在這個(gè)頁(yè)面。但是可以看到屏幕的閃動(dòng)。通過(guò)打印消息發(fā)現(xiàn),點(diǎn)了取消按鈕,執(zhí)行了首頁(yè)的-(BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar方法。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025公司安全管理人員安全培訓(xùn)考試試題附完整答案【有一套】
- 小學(xué)四年級(jí)數(shù)學(xué)三位數(shù)除以兩位數(shù)同步測(cè)驗(yàn)訓(xùn)練題帶答案
- 2025-2030年中國(guó)車(chē)庫(kù)起重設(shè)備行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)超級(jí)濃縮洗滌劑行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)敗血癥合作行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)諧波傳動(dòng)精密齒輪減速器行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)設(shè)立醫(yī)院行業(yè)發(fā)展分析及發(fā)展前景與趨勢(shì)預(yù)測(cè)研究報(bào)告
- 2025-2030年中國(guó)角豆樹(shù)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)西門(mén)尼亞美洲籽油行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)補(bǔ)腎藥物行業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資研究報(bào)告
- 電鍍有限公司雙體系資料之風(fēng)險(xiǎn)分級(jí)管控體系實(shí)施手冊(cè)
- 【醫(yī)院管理案例學(xué)習(xí)】-床單位終末消毒標(biāo)準(zhǔn)的執(zhí)行
- 暗挖格柵加工技術(shù)交底
- 2023年安徽省公安機(jī)關(guān)警務(wù)輔助人員條例訓(xùn)練題庫(kù)211題及答案
- EMS概要設(shè)計(jì)說(shuō)明書(shū)計(jì)費(fèi)模塊
- 礦山安全培訓(xùn)課件-礦山地質(zhì)安全
- (完整)被動(dòng)防護(hù)網(wǎng)施工方案
- 《高層建筑火災(zāi)撲救》教學(xué)課件
- 東師《德育與班級(jí)管理》題庫(kù)與答案
- 江西省醫(yī)療服務(wù)價(jià)格手冊(cè)
- 義務(wù)教育初中地理課程標(biāo)準(zhǔn)2022版
評(píng)論
0/150
提交評(píng)論