swift详解之二十八———自定义下拉刷新
好久不写博客了 ,最近比较忙。swift学习稍微搁置了,昨天看了AppCoda的自定义下拉刷新 , 挺有心意的,也很简单。就顺便写写,在它的基础上添加了,下拉拉伸。OK先看下效果,基本都是按照它的思路实现的。
下拉的时候,从没有到慢慢的显示出来,再到拉长。
首先,创建一个single ViewController的项目 。然后在Main.storyboard上拖一个tableView。 四边的约束都设置成 0 。
在ViewController中声明 @IBOutlet weak var tb:UITableView!
,然后再在 Main.storyboard里面连线 。
右击就能看到这个菜单 , 点击tb旁边的空心圆,拖到tableView上就行了。
然后就是造数据,让我们的ViewController实现两个协议 ,其实这写都是UITableview的基本使用 。不再赘述可以看我前面关于UITableView的文章。
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate
//声明
var dataArr = ["第一行","第二行","第三行","第四行","第五行"]
//viewDidLoad中
tb.delegate = self
tb.dataSource = self
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
cell.textLabel!.text = dataArr[indexPath.row]
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArr.count
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 60.0
}
以上是相关代码 。
现在运行APP应该只显示五行数据。下面添加系统的下拉刷新控件—UIRefreshControl
声明一个变量var refreshControl: UIRefreshControl!
在viewDidLoad中添加下面代码。
refreshControl = UIRefreshControl()
tb.addSubview(refreshControl)
这时候运行代码下拉的时候就有有个菊花在转 。 但是不会停。用他们的原图吧。。
这里其实可以对UIRefreshControl进行自定义 。 可以设置其backgroundColor,tintColor等
可