iOS學習之路--下拉刷新和上拉加載更多


iOS學習之路--下拉刷新和上拉加載更多

簡介

        本文中筆者將和大家分享應用app中常用到的表單內容的下拉刷新和上拉加載更多的功能實現的方法。

內容

1.有哪些實現方法與各方法的優劣

         使用過美團,大眾點評的朋友們應該有注意到,當你向上滑動表單的時候會有更多的店鋪加載進你的表單中,而當你下滑表單頂的時候,則會刷新表單的內容並從網絡上獲取最新的信息。通過下拉刷新和上拉加載更多的功能,使app可以獲取更多用戶想要的信息和獲取最新的信息。那么這種功能如何實現呢,還請跟着筆者繼續往下看。

         目前來說,主要的實現方法有以下幾種

1.UIRefreshControl :iOS的UIkit中自帶的一種刷新方法,最為基礎和原始

2.自己自定義 :可以制作個性化的刷新工具,但較為復雜且易出現問題,不推薦新手和為趕工臨時使用一下的人。

3.AH3DPullRefresh : 簡單的下拉刷新/加載控件,帶有3D效果, 使用很方便,如果是ARC環境的需要設置一下

具體設置位置如下圖

在Build Phases的Compile Sources中設置UIScrollView+AH3DPullRefresh.m的Flags為-fno-objc-arc就可以正常運行了

4.MJRefresh :  方便快捷,是個人認為最為方便並且兼容性最好的刷新加載工具

5.其他開源庫 :  網上有許多的開源庫,包括以上推薦的3和4也是,網上還有許多各式各樣的,有興趣的話可以自行到CocoaChina或者其他提供開源代碼的網站去搜索,選擇一款適合自己情況的。

2.具體實例

          接下來,請跟筆者來看看MJRefresh和一款筆者從CocoaChina上下載的一款很好看的名為YALSunnyRefreshControll的下拉刷新的具體實現的過程。

                      首先是添加下拉刷新,將YALSunnyRefreshControll文件夾添加到工程中 

                      然后再需要添加下拉刷新的.h文件中引入頭文件即#import "YALSunnyRefreshControl.h",並為該類@property 一個YALSunnyRefreshControl對象。

                      如圖:

                       然后將該YALSunnyRefreshControl初始化並與所需要實現刷新功能的UITableView或者UICollectionView關聯起來具體代碼如下:

                      

                       最后引入刷新動畫所需要的圖片,這些圖片會和代碼一起下載下來,可以使用他的,也可以換成自己的

                        最后實現的成果圖如下:

                      

                     當下拉表格的時候,表格上方就會有太陽升起和出現房屋的動畫出現,是不是很好看?而且內容也刷新了,這工具真是即好用又好看.

                   接下來,我使用MJRefresh實現的上拉表單從網絡加載更多數據並顯示到表單上的功能。

                   首先第一步和之前一樣,是將MJRefresh包添加到工程中,並引入到需要使用它的.m文件中

                   然后,在該文件中新建一個MJRefresh的全局變量,然后初始化並與tableView關聯起來,具體代碼如下:

                 

                  我的代碼[self startDownload]的作用是,從網上第_offset條開始加載10條數據到本地,_offset+=10然后調用[self startDownload]就使我的應用加載了更多的十條數據,下載完畢后記得要調用tableView的 reloadData方法,才能將新加載的數據顯示到表單中。

                   當加載完畢后,還需要調用一個停止加載的方法作為結束,否則無法進行下一次加載,在你的加載數據到你的tableView 的datasource的方法最后調用如下方法

                     

                   上面兩個分別是我的加載和刷新的結束方法的調用,最好在調用之前調用tableView的 reloadData方法;

                   如此,就完成了加載和刷新的功能的實現,加載的效果圖如下:

            

                              筆者表示對蘋果的截圖還不熟練,只會用截屏...

3.結語

                總之,以上就是我對下拉刷新和上拉加載功能如何實現的個人總結,如果看客覺得我有說的不對和不足地方,還請多多指教,可以通過博客聯系我,或是在文章下留下評論,謝謝~。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM