最近自己寫了一個下拉載入最新,上拉載入更多的重新整理控制項。借鑒了其他優秀開原始碼的實現效果比如MJRefresh和DGElasticPullRefresh。主要是為了學習別人的優秀思想。
如何使用:
Cocoapods 匯入:pod 'ThPullRefresh',
在項目中 import 'ThPullRefresh'
手動匯入:將'ThPullRefresh' 檔案夾中的所有檔案拽入項目中
head與foot基本效果的添加
具體代碼如下:
override func viewDidLoad() { super.viewDidLoad() self.tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "tableViewCell") self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 44 self.tableView.tableFooterView = UIView()// self.tableView.addHeadRefresh(self) { () -> () in// self.loadNewData()// } self.tableView.addHeadRefresh(self, action: "loadNewData") self.tableView.head?.hideTimeLabel=true self.tableView.addFootRefresh(self, action: "loadMoreData") } func loadNewData(){ //延時類比重新整理 self.index = 0 DeLayTime(2.0, closure: { () -> () in self.dataArr.removeAllObjects() for (var i = 0 ;i<5;i++){ let str = "最新5個cell,第\(self.index++)個" self.dataArr.addObject(str) } self.tableView.reloadData() self.tableView .tableHeadStopRefreshing() }) }
DelayTime是一個方法的宏
func DeLayTime(x:Double,closure:()->()){dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(x * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure)}
要實現果凍效果
代碼如下
幾個有顏色的點可以忽略,那是開發用於調貝茲路徑的。
/* *bgColor 背景顏色 *loadingColor 載入的顏色 */ public func addBounceHeadRefresh(target:AnyObject?,bgColor:UIColor,loadingColor:UIColor,action : Selector); //實現如下self.tableView.addBounceHeadRefresh(self,bgColor:UIColor.orangeColor(),loadingColor:UIColor.blueColor(), action: "loadNewData")
停止頭部重新整理和底部重新整理
self.tableView.tableHeadStopRefreshing()self.tableView.tableFootStopRefreshing
以上就是本文的全部內容,希望對大家的學習有所協助。