本文中筆者將和大家分享應(yīng)用app中常用到的表單內(nèi)容的下拉刷新和上拉加載更多的功能實現(xiàn)的方法。
使用過美團,大眾點評的朋友們應(yīng)該有注意到,當(dāng)你向上滑動表單的時候會有更多的店鋪加載進你的表單中,而當(dāng)你下滑表單頂?shù)臅r候,則會刷新表單的內(nèi)容并從網(wǎng)絡(luò)上獲取最新的信息。通過下拉刷新和上拉加載更多的功能,使app可以獲取更多用戶想要的信息和獲取最新的信息。那么這種功能如何實現(xiàn)呢,還請跟著筆者繼續(xù)往下看。
目前來說,主要的實現(xiàn)方法有以下幾種
1.UIRefreshControl :iOS的UIkit中自帶的一種刷新方法,最為基礎(chǔ)和原始
2.自己自定義 :可以制作個性化的刷新工具,但較為復(fù)雜且易出現(xiàn)問題,不推薦新手和為趕工臨時使用一下的人。
3.AH3DPullRefresh : 簡單的下拉刷新/加載控件,帶有3D效果, 使用很方便,如果是ARC環(huán)境的需要設(shè)置一下
具體設(shè)置位置如下圖
在Build Phases的Compile Sources中設(shè)置UIScrollView+AH3DPullRefresh.m的Flags為-fno-objc-arc就可以正常運行了
4.MJRefresh : 方便快捷,是個人認(rèn)為最為方便并且兼容性最好的刷新加載工具
5.其他開源庫 : 網(wǎng)上有許多的開源庫,包括以上推薦的3和4也是,網(wǎng)上還有許多各式各樣的,有興趣的話可以自行到CocoaChina或者其他提供開源代碼的網(wǎng)站去搜索,選擇一款適合自己情況的。
接下來,請跟筆者來看看MJRefresh和一款筆者從CocoaChina上下載的一款很好看的名為YALSunnyRefreshControll的下拉刷新的具體實現(xiàn)的過程。
首先是添加下拉刷新,將YALSunnyRefreshControll文件夾添加到工程中
然后再需要添加下拉刷新的.h文件中引入頭文件即#import "YALSunnyRefreshControl.h",并為該類@PRoperty 一個YALSunnyRefreshControl對象。
如圖:
然后將該YALSunnyRefreshControl初始化并與所需要實現(xiàn)刷新功能的UITableView或者UICollectionView關(guān)聯(lián)起來具體代碼如下:
最后引入刷新動畫所需要的圖片,這些圖片會和代碼一起下載下來,可以使用他的,也可以換成自己的
最后實現(xiàn)的成果圖如下:
當(dāng)下拉表格的時候,表格上方就會有太陽升起和出現(xiàn)房屋的動畫出現(xiàn),是不是很好看?而且內(nèi)容也刷新了,這工具真是即好用又好看.
接下來,我使用MJRefresh實現(xiàn)的上拉表單從網(wǎng)絡(luò)加載更多數(shù)據(jù)并顯示到表單上的功能。
首先第一步和之前一樣,是將MJRefresh包添加到工程中,并引入到需要使用它的.m文件中
然后,在該文件中新建一個MJRefresh的全局變量,然后初始化并與tableView關(guān)聯(lián)起來,具體代碼如下:
我的代碼[self startDownload]的作用是,從網(wǎng)上第_offset條開始加載10條數(shù)據(jù)到本地,_offset+=10然后調(diào)用[self startDownload]就使我的應(yīng)用加載了更多的十條數(shù)據(jù),下載完畢后記得要調(diào)用tableView的 reloadData方法,才能將新加載的數(shù)據(jù)顯示到表單中。
當(dāng)加載完畢后,還需要調(diào)用一個停止加載的方法作為結(jié)束,否則無法進行下一次加載,在你的加載數(shù)據(jù)到你的tableView 的datasource的方法最后調(diào)用如下方法
上面兩個分別是我的加載和刷新的結(jié)束方法的調(diào)用,最好在調(diào)用之前調(diào)用tableView的 reloadData方法;
如此,就完成了加載和刷新的功能的實現(xiàn),加載的效果圖如下:
筆者表示對蘋果的截圖還不熟練,只會用截屏...
總之,以上就是我對下拉刷新和上拉加載功能如何實現(xiàn)的個人總結(jié),如果看客覺得我有說的不對和不足地方,還請多多指教,可以通過博客聯(lián)系我,或是在文章下留下評論,謝謝~。
新聞熱點
疑難解答