使用Block来传递消息 --->block和代理委托一样,都是一级一级往上传递的。
1>声明一个Block--->定义一个Block
typedef void(^SelectColorBlock)(UIColor *color);
2>Block一般放在initFrame方法后面,增加块代码参数。
- (id)initWithFrame:(CGRect)frame afterSelectColor:(SelectColorBlock)afterSelectColor;
3>定义一个成员变量用来记录块代码参数 SelectColorBlock _selectBlock;
4>在initFrame方法中将参数赋值给成员变量 _selectBlock = afterSelectColor;
5>什么时候要发送消息,那么什么时候调用Block selectBlock(self.colorArray[button.tag]);
6>传递给上级后,上级只需要在初始化的时候将block参数设置,或者记录。