上拉刷新下拉加载——MJRefresh的学习使用
2015-09-10 11:21
459 查看
//先用代码创建一个TableView
var tableView1:UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView1 = UITableView(frame: self.view.frame)
self.view.addSubview(tableView1)
tableView1.delegate = self
tableView1.dataSource = self
//注册Cell
tableView1.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
//上拉刷新使用MJRefresh的Block
func headRefresh(){
//ProgressHUD的使用
ProgressHUD.show("玩命刷新中")
//Delay方法是模拟刷新延迟自定义的方法
self.Delay(2, closure: { () -> () in
var j = self.i + 10
for self.i; self.i<j; self.i++ {
self.Array1.append("\(self.i)")
}
self.tableView1.reloadData()
self.head.stopRefresh()
ProgressHUD.showSuccess("OK")
})
}
//下拉加载使用MJRefresh的Block
self.tableView1.footer = MJRefreshBackGifFooter(refreshingBlock: { () -> Void in
ProgressHUD.show("玩命刷新中")
self.Delay(2, closure: { () -> () in
var j = self.i + 10
for self.i; self.i<j; self.i++ {
self.Array1.append("\(self.i)")
}
self.tableView1.footer.endRefreshing()
self.tableView1.reloadData()
ProgressHUD.showSuccess("OK")
})
})
//Delay方法的定义
func Delay(time:Double,closure:()->()){
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure
//利用XHPathCover创建一个类似微信朋友圈的背景
var head:XHPathCover!
head = XHPathCover(frame: CGRect(x: 0, y: 0, width: 320, height: 200))
head.setBackgroundImage(UIImage(named: "bg"))
head.setAvatarImage(UIImage(named: "gbt"))
head.avatarButton.addTarget(self, action: "PhotoBrowser", forControlEvents: UIControlEvents.TouchUpInside)
//拖拽模糊效果
head.isZoomingEffect = true
head.setInfo(NSDictionary(objectsAndKeys: "baibai",XHUserNameKey,"IOS程序员",XHBirthdayKey) as [NSObject:AnyObject])
head.avatarButton.layer.cornerRadius = 33
head.layer.masksToBounds = true
head.handleRefreshEvent = {
self.headRefresh()
}
//因为要实现此背景的拖拽,需要实现ScrollView的几个方法。
func scrollViewDidScroll(scrollView: UIScrollView){
head.scrollViewDidScroll(scrollView)
}
func scrollViewWillBeginDragging(scrollView: UIScrollView)
{head.scrollViewWillBeginDragging(scrollView)
}
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
head.scrollViewDidEndDragging(scrollView, willDecelerate: decelerate)
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
head.scrollViewDidEndDecelerating(scrollView)
}
//自定义TableView的Cell
//将每行的高度改为80
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 80
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
// ?
for view in cell.contentView.subviews{
view.removeFromS
var image = UIImageView(frame: CGRect(x: 10, y: 10, width: 60, height: 60))
//给每一行加上图片
image.sd_setImageWithURL(NSURL(string: "http://ent.jwb.com.cn/picture/0/1111201750371192916.jpg" ))
cell.contentView.addSubview(image)
var label = UILabel(frame: CGRect(x: 80, y: 30, width: 100, height: 20))
label.text = "这是第\(indexPath.row)行"
cell.contentView.addSubview(label)
return cell
}
//运行效果
//刷新
var tableView1:UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView1 = UITableView(frame: self.view.frame)
self.view.addSubview(tableView1)
tableView1.delegate = self
tableView1.dataSource = self
//注册Cell
tableView1.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
//上拉刷新使用MJRefresh的Block
func headRefresh(){
//ProgressHUD的使用
ProgressHUD.show("玩命刷新中")
//Delay方法是模拟刷新延迟自定义的方法
self.Delay(2, closure: { () -> () in
var j = self.i + 10
for self.i; self.i<j; self.i++ {
self.Array1.append("\(self.i)")
}
self.tableView1.reloadData()
self.head.stopRefresh()
ProgressHUD.showSuccess("OK")
})
}
//下拉加载使用MJRefresh的Block
self.tableView1.footer = MJRefreshBackGifFooter(refreshingBlock: { () -> Void in
ProgressHUD.show("玩命刷新中")
self.Delay(2, closure: { () -> () in
var j = self.i + 10
for self.i; self.i<j; self.i++ {
self.Array1.append("\(self.i)")
}
self.tableView1.footer.endRefreshing()
self.tableView1.reloadData()
ProgressHUD.showSuccess("OK")
})
})
//Delay方法的定义
func Delay(time:Double,closure:()->()){
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure
//利用XHPathCover创建一个类似微信朋友圈的背景
var head:XHPathCover!
head = XHPathCover(frame: CGRect(x: 0, y: 0, width: 320, height: 200))
head.setBackgroundImage(UIImage(named: "bg"))
head.setAvatarImage(UIImage(named: "gbt"))
head.avatarButton.addTarget(self, action: "PhotoBrowser", forControlEvents: UIControlEvents.TouchUpInside)
//拖拽模糊效果
head.isZoomingEffect = true
head.setInfo(NSDictionary(objectsAndKeys: "baibai",XHUserNameKey,"IOS程序员",XHBirthdayKey) as [NSObject:AnyObject])
head.avatarButton.layer.cornerRadius = 33
head.layer.masksToBounds = true
head.handleRefreshEvent = {
self.headRefresh()
}
//因为要实现此背景的拖拽,需要实现ScrollView的几个方法。
func scrollViewDidScroll(scrollView: UIScrollView){
head.scrollViewDidScroll(scrollView)
}
func scrollViewWillBeginDragging(scrollView: UIScrollView)
{head.scrollViewWillBeginDragging(scrollView)
}
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
head.scrollViewDidEndDragging(scrollView, willDecelerate: decelerate)
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
head.scrollViewDidEndDecelerating(scrollView)
}
//自定义TableView的Cell
//将每行的高度改为80
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 80
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
// ?
for view in cell.contentView.subviews{
view.removeFromS
var image = UIImageView(frame: CGRect(x: 10, y: 10, width: 60, height: 60))
//给每一行加上图片
image.sd_setImageWithURL(NSURL(string: "http://ent.jwb.com.cn/picture/0/1111201750371192916.jpg" ))
cell.contentView.addSubview(image)
var label = UILabel(frame: CGRect(x: 80, y: 30, width: 100, height: 20))
label.text = "这是第\(indexPath.row)行"
cell.contentView.addSubview(label)
return cell
}
//运行效果
//刷新
相关文章推荐
- MyEclipse注册码,有效期至2017年
- 页面不够高,尾部在底部样式
- storm处理场景-01.docx
- @synthesize name=_name的含义
- QtPropertybrowser源码编译
- 常见错误总结
- django资料收集
- 实战 SQL Server 2008 数据库误删除数据的恢复
- Linux系统中-/+ buffers/cache: 1397032 2752124 的意思
- 【leetcode】Count Complete Tree Nodes -C++
- python笔记_magic变量和函数
- javaScript的运行机制?
- C#结构体
- Modal简单介绍
- 取得“距离某天还有多少天多少小时”的函数
- 重新安装xcode cocoapods出现 Could not find a valid gem 'cocoapods' (>= 0) in any repository
- Leetcode: N-Queens
- spring service方法里有两个save时的同步问题
- Python 文件操作
- 我也来写:数据库访问类DBHelper