UITableView_6-团购实例,刷新数据,代理实现,GCD方法使用
来源:互联网 发布:google java style 编辑:程序博客网 时间:2024/05/19 14:38
// TGtgfootview.h=======================
// TG团购
//
// Created by Toge on 6/5/15.
// Copyright (c) 2015 wxhl. All rights reserved.
//
#import <UIKit/UIKit.h>
@class TGtgfootview;
//协议名是类名加Delegate,方便其他人使用
@protocol TGtgfootviewDelegate <NSObject>
//可选的方法类型
@optional
//方法名以类名去除前缀开始,最好可以描述清楚要做的事情,最后还要把自己作为参数使调用着知道是谁在调用,避免当方法名重名时可以区分
- (void)tgfootviewDidClicloadButton:(TGtgfootview *)tgfootview;
@end
@interface TGtgfootview : UIView
//定义代理属性
@property (nonatomic,weak)id <TGtgfootviewDelegate> delegate;
+ (instancetype)footView;
@end
// TGtgfootview.m====================================
// TG团购
//
// Created by Toge on 6/5/15.
// Copyright (c) 2015 wxhl. All rights reserved.
//
#import "TGtgfootview.h"
@interface TGtgfootview()
@property (weak, nonatomic) IBOutletUIView *loadingView;
@property (weak, nonatomic) IBOutletUIButton *loadBtb;
- (IBAction)loadButton:(UIButton *)sender;
@end
@implementation TGtgfootview
+ (instancetype)footView
{
return [[[NSBundlemainBundle] loadNibNamed:@"TGtgfootView"owner:niloptions:nil]lastObject];
}
//点击加载按钮的实现
- (IBAction)loadButton:(UIButton *)sender {
// 隐藏加载按钮并且现实正在加载
self.loadBtb.hidden =YES;
self.loadingView.hidden =NO;
// 加载更多数据,由于数据在控制器类中所以加载数据最好是在控制器中实现,所以需要设置代理
// 此方法延迟执行某些代码
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
//调用代理方法
[self.delegatetgfootviewDidClicloadButton:self];
// 显示加载更多按钮
self.loadBtb.hidden =NO;
// 隐藏玩命加载试图
self.loadingView.hidden =YES;
});
}
@end
// ViewController.m=============================
// TG团购
//
// Created by Toge on 6/5/15.
// Copyright (c) 2015 wxhl. All rights reserved.
//
#import "ViewController.h"
#import "TGtg.h"
#import "TGtgCell.h"
#import "TGtgfootview.h"
@interface ViewController ()<UITableViewDataSource,TGtgfootviewDelegate>
@property (weak, nonatomic) IBOutletUITableView *tableView;
@end
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//定义所有行的宽
self.tableView.rowHeight =80;
/**
*在表示图的footerview上添加按钮
*/
//第一种方式
// UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
// btn.frame = CGRectMake(0, 0, 0, 44);
// btn.backgroundColor = [UIColor orangeColor];
// [btn setTitle:@"加载更多数据" forState:UIControlStateNormal];
//第二种方式
// NSString *path = [[NSBundle mainBundle] pathForResource:@"TGtgfootView.xib" ofType:nil];
// UIView *footView = [[NSArray arrayWithContentsOfFile:path] lastObject];
//读取nib文件
// UINib *nib = [UINib nibWithNibName:@"TGtgfootView" bundle:nil];
// UIView *footView = [[nib instantiateWithOwner:nil options:nil] lastObject];
//第二种方式的延伸,nib文件的加载封装到view中,view中提供返回view的方法如下
// self.tableView.tableFooterView = [TGtgfootview footView];
// 第三种方式使用tag值,此种方式太垃圾
//第四种方式,封装view,此处使用到代理,要遵守代理协议TGtgfootviewDelegate
TGtgfootview *footView = [TGtgfootviewfootView];
footView.delegate = self;
self.tableView.tableFooterView = footView;
}
//TGfootviewDelegate协议的实现,加载数据
- (void)tgfootviewDidClicloadButton:(TGtgfootview *)tgfootview
{
// 此处先使用手动添加的数据
TGtg *tg = [[TGtgalloc] init];
tg.icon =@"ad_01";
tg.title = @"新添加的数据";
tg.price = @"200";
tg.buyCount = @"3333";
[self.tgsaddObject:tg];
// 重新加载表示图上的数据
[self.tableViewreloadData];
}
- UITableView_6-团购实例,刷新数据,代理实现,GCD方法使用
- 练习:团购界面搭建(用代理方法实现加载更多数据)
- 使用javascript实现无刷新数据校验
- 使用setTimeout()实现页面自动刷新数据
- 使用onresume实现finish返回刷新数据
- 使用Dojo实现页面不刷新提交数据时避免前台缓存的方法
- MVC3 数据分页 ASP.NET实现无刷新分页实例
- 使用Java原生代理实现数据注入
- 使用BeanNameAutoProxyCreator实现方法日志代理
- 使用GCD实现多线程
- 使用GCD实现倒计时
- 不使用ajax实现无刷新提交表单实例
- java 使用动态代理 和ThreadLocal实现事务管理实例
- ListView刷新数据方法
- js 调用ajax方法实现新增数据,原页面刷新
- js 调用后台方法 ICallbackEventHandler 接口实现局部刷新实例 ClientScript的GetCallbackEventReference方法实现局部刷新
- iOS实现数据刷新
- listView使用simpleAdapter通过notifyDataSetChanged()方法刷新数据问题
- huffman编码的MATLAB递归实现
- JAVA关于图片处理的工具类
- Jquery退出循环
- java 内部类
- 进阶之路--单元测试、日志信息
- UITableView_6-团购实例,刷新数据,代理实现,GCD方法使用
- Android Wear Step Sensor
- 今天礼拜五
- openjudge 重建二叉树3
- UVA - 1421 Archery
- Codeforces Round 306 B Preparing Olympiad(简单dfs)
- Linux正则表达式-定位元字符
- word页眉横线去除方法
- python类:面向对象、继承、slot、多重继承