本文中筆者將和大家分享應用app中常用到的表單內容的下拉刷新和上拉加載更多的功能實現的方法。
使用過美團,大眾點評的朋友們應該有注意到,當你向上滑動表單的時候會有更多的店鋪加載進你的表單中,而當你下滑表單頂的時候,則會刷新表單的內容并從網絡上獲取最新的信息。通過下拉刷新和上拉加載更多的功能,使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或者其他提供開源代碼的網站去搜索,選擇一款適合自己情況的。
接下來,請跟筆者來看看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方法;
如此,就完成了加載和刷新的功能的實現,加載的效果圖如下:
筆者表示對蘋果的截圖還不熟練,只會用截屏...
總之,以上就是我對下拉刷新和上拉加載功能如何實現的個人總結,如果看客覺得我有說的不對和不足地方,還請多多指教,可以通過博客聯系我,或是在文章下留下評論,謝謝~。
新聞熱點
疑難解答