代理:如何写一个代理
来源:互联网 发布:汽车维保数据 违法 编辑:程序博客网 时间:2024/05/02 04:42
写一个代理重点:1、协议最好实现根协议2、代理方法设置位id,这样任何类型都可以第二次总结1、首先写一个协议,这个写在类的声明里(就是JAVA的先写好一个接口interface),协议实现根协议注意:1、协议名就死控件名加上Delegate 2、方法上我们加上@optional,方法可以不实现 3、特别重要命名:这里协议的方法如果是View的就以View开头,不要加前缀,比如UI,就直接写scrollViewXXXXX 4、所有代理得传入对应的控件才好,这里写法有二种,我们可以参考ScrollView来写 第一种写法:只有一个入参的,这里就把控件名写到最后面 第二种写法:有多个入参,方法名拆开写@protocol TgFooterViewDelegate <NSObject>@optional- (void)tgFooterViewLoadDidClick:(TgFooterView *) TgFooterView;@end2、再写一个代理注意:1、代理属性是(nonatomic, weak) 2、代理的类型是id,这样不受任何限制 3、代理中代理属性的名字是:delegate,记住前面是不带有*符号的 这里考虑是不是只要是返回id类型,都不用带上* 4、最重要一点:***************** 这里一定要判断代理是否实现,实现了再执行方法 @property(nonatomic, weak) id<TgFooterViewDelegate> delegate;//写一个代理申明类-----------@property(nonatomic, weak) id<TgFooterViewDelegate> delegate;//写一个代理#import <UIKit/UIKit.h>@protocol TgFooterViewDelegate <NSObject>@optional- (void)loadingMoreData;@end@interface TgFooterView : UIView+ (instancetype)footerView;//用来返回TgFooterView对象@property(nonatomic, weak) id<TgFooterViewDelegate> delegate;//写一个代理@end实现类----------- 一定记住当调用我们代理方法的时候判断方法是否实现respondsToSelector方法/** * 点击加载按钮显示 */- (IBAction)loadBtnClick{ //1、隐藏按钮 self.loadBtn.hidden = YES; //2、显示正在加载 self.loadView.hidden = NO; //3、显示更多数据 //3.1 添加更多数据模型 if ([self.delegate respondsToSelector:@selector(tgFooterViewLoadDidClick:)]) { [self.delegate tgFooterViewLoadDidClick:self]; } //3.2 刷新表格(告诉tableView重新加载模型数据,调用tableView的ReloadData) }@end-----------------------------------------------------------使用重点:1、设置对应的代理对象是谁,然后代理对象再实现对应的代码 TgFooterView *footerView = [TgFooterView footerView]; footerView.delegate = self;
0 0
- 代理:如何写一个代理
- 写一个代理(java写一个接口)
- 继承?静态代理?写一个自己的动态代理吧
- 代理模式——动态代理(自己写一个)
- 写一个ArrayList类的代理
- 用代理写的一个小框架
- c++尝试写一个代理类
- 如何写一个RPC框架(二):利用Bean容器和动态代理简化客户端代码
- 一个代理
- 一个代理
- 如何停止一个定时代理的运行
- 反写更新代理
- 如何用Java写一个简单的代理Web服务器
- 设计模式: 自己手动写一个代理模式
- 写一个完整的代理, 包括声明和实现
- 自己写一个java.lang.reflect.Proxy代理的实现
- 自己写一个java.lang.reflect.Proxy代理的实现
- PAC自动代理文件格式,教你如何写PAC文件
- Lua简易入门
- 堆排序(Heap Sortd)
- iOS 调用相册/相机/图片压缩
- 真机的时候File Explorer中的data打不开
- Word Ladder II
- 代理:如何写一个代理
- rails应用ajax之一:使用纯js方法
- 树莓派开发系列教程1——树莓派介绍
- 多线程编程的总结
- linux环境下C语言网络编程入门
- 图数据库Titan/Gremlin查询过程分析
- iOS安全攻防(四)使用OpenSSH
- 圆角和边框们
- GDI资源,用完需释放