使用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参数设置,或者记录。