自定义按钮
- 不要直接拿出按钮内部的子控件,来修改文字、图片属性
代理设计模式的总结
- 如果你想监听别人的一些行为,那么你就要成为别人的代理
- 如果你想告诉别人一些事情,那么就让别人成为你的代理
代理设计模式的开发步骤
拟一份协议(协议名字的格式:控件名+Delegate),在协议里面声明一些代理方法,一般代理方法都是@optional
-
声明一个代理属性:
@property (nonatomic, weak) id<代理协议> delegate;
在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事
设置代理:xxx.delegate = yyy;
yyy对象遵守协议,实现代理方法
循环引用
- 想让对象能销毁,不能是循环引用
- delegate相关的声明都必须使用weak,否则就会引发循环引用的问题