素材解析源碼包更新(素材網(wǎng)第三方解析網(wǎng)站)
今天給各位分享素材解析源碼包更新的知識,其中也會對素材網(wǎng)第三方解析網(wǎng)站進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!
本文目錄一覽:
素材解析網(wǎng)站接口如何獲取
1、進行簡單設置,將ViewSource添加到Safari擴展菜單,在Safari打開任意一個網(wǎng)頁后,點擊底部的分享按鈕,第二行的擴展菜單滑動至最右,選擇更多,在活動頁面,找到ViewSource并將開關打開,這樣ViewSource就添加到Safari擴展菜單了。
2、找尋一些可用的在線解析。
3、查看網(wǎng)頁源代碼,獲取解析接口。
素材與源碼是什么意思
分別是寫作和計算機的專業(yè)術語。
素材,指的是作者從現(xiàn)實生活中搜集到的、未經(jīng)整理加工的、感性的、分散的原始材料。源碼是指編寫的最原始程序的代碼,是未編譯的按照一定的程序設計語言規(guī)范書寫的文本文件,是一系列人類可讀的計算機語言指令。
源碼主要功用,1、生成目標代碼,即計算機可以識別的代碼。2、對軟件進行說明,即對軟件的編寫進行說明。為數(shù)不少的初學者,甚至少數(shù)有經(jīng)驗的程序員都忽視軟件說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。
iOS 李明杰 MJRefresh源碼解析
MJRefresh 是著名開發(fā)者及培訓講師李明杰老師的作品,到現(xiàn)在在github已經(jīng)有10000多顆star,真真是極好用的iOS下拉刷新(也支持上拉加載更)控件。本文主要素材來源有 正在學hybrid開發(fā)的iOS開發(fā)者 J_Knight 的文章和 github 上李明杰老師的用法介紹(主要是本文下部分)。
該框架的結構設計得很清晰,使用一個基類MJRefreshComponent來做一些基本的設定,然后通過繼承的方式,讓MJRefreshHeader和MJRefreshFooter分別具備下拉刷新和上拉加載的功能。從繼承機構來看可以分為三層,具體可以從下面的圖里看出來:
其中一條繼承鏈是這樣的
開發(fā)者一般使用場景是這樣的:
作者 在類目 UIScrollView+MJRefresh 中運用運行時關聯(lián)屬性函數(shù) objc_setAssociatedObject 和 objc_getAssociatedObject 對 UIScrollView 視圖控件添加了 mj_header 、 mj_footer 等屬性.
MJRefreshNormalHeader 是最下層的子類, headerWithRefreshingTarget 和 headerWithRefreshingBlock 是最上層基類 MJRefreshComponent 暴露出的靜態(tài)快捷構造方法。把對象的創(chuàng)建下放到子類,此處明顯用到了工廠方法。編譯時類型 mj_header is classof MJRefreshHeader ,運行時類型 MJRefreshNormalHeader 是其子類,此處是典型的多態(tài)特性的應用。
即面向接口編碼,而非面向實現(xiàn)編碼。作者從最上層基類 MJRefreshComponent 即暴露接口
具體實現(xiàn):
具體實現(xiàn),首先來看一下該控件的基類:MJRefreshComponent:
這個類作為該控件基類,涵蓋了基類所具備的成份:狀態(tài),回調block等,大致分成下面這5種職能:
監(jiān)聽的聲明:offset、size、state
對于監(jiān)聽的處理:
從上面等結構圖可以看出,緊接著這個基類,下面分為codeMJRefreshHeader/code和codeMJRefreshFooter/code,這里順著codeMJRefreshHeader/code這個分支向下展開:
codeMJRefreshHeader/code繼承于codeMJRefreshComponent/code,它做了這幾件事:
初始化有兩種方法:動作-目標/block塊函數(shù) 做回調
通過重寫codeprepare/code方法來設置header的高度:
通過重寫placeSubviews方法來重新調整y值:
這里提供一張圖來體現(xiàn)三個狀態(tài)的不同:
這個類是codeMJRefreshHeader/code類的子類,它做了兩件事:
給一張圖,讓大家直觀感受一下這兩個控件:
這個類通過覆蓋父類三個方法來實現(xiàn)上述兩個實現(xiàn):
在這里,將每一個狀態(tài)對應的提示文字放入一個字典里面,codekey/code是狀態(tài)的codeNSNumber/code形式
這里主要是對codelastUpdatedTimeLabel/code和codestateLabel/code進行布局。要注意codelastUpdatedTimeLabel/code隱藏的情況。
在這里,根據(jù)傳入的codestate/code不同,在codestateLabel/code和codelastUpdatedTimeLabel/code里切換相應的文字。
codeMJRefreshNormalHeader /code繼承于 codeMJRefreshStateHeader/code,它主要做了兩件事:
給一張圖來直觀感受一下這兩個view:
同codeMJRefreshStateHeader/code一樣,也是重寫了父類的三個方法:
到此為止,我們已經(jīng)從codeMJRefreshComponent/code到codeMJRefreshNormalHeader/code的實現(xiàn)過程看了一遍。可以看出,作者將codeprepare/code,codeplaceSubviews/code以及 setState: 方法作為基類的方法,讓下面的子類去一層一層實現(xiàn)。
而每一層的子類,根據(jù)自身的職責,分別按照自己的方式來實現(xiàn)這三個方法:
這樣做的好處是,如果想要增加某種類型的 header ,只要在某一層上做文章即可。例如該框架里的 MJRefreshGifHeader ,它和 MJRefreshNormalHeader 屬于同一級,都是繼承于 MJRefreshStateHeader 。因為二者都具有相同形式的 stateLabel 和 lastUpdatedTimeLabel ,唯一不同的就是左側的部分:
還是提供一張圖來直觀感受一下:
下面我們來看實現(xiàn):
它提供了兩個接口,是用來設置不同狀態(tài)下使用的圖片數(shù)組的:
和MJRefreshNormalHeader一樣,它也重寫了基類提供的三個方法來實現(xiàn)顯示gif圖片的職能。
素材解析源碼包更新的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于素材網(wǎng)第三方解析網(wǎng)站、素材解析源碼包更新的信息別忘了在本站進行查找喔。
掃描二維碼推送至手機訪問。
版權聲明:本文由飛速云SEO網(wǎng)絡優(yōu)化推廣發(fā)布,如需轉載請注明出處。