点击一个继承UIView的MyButton , 来实现点击MyButton后随机更换背景颜色的功能
- MyButton.h文件
#import <UIKit/UIKit.h>
// 1.声明一份协议
@protocol MyButtonDelegate <NSObject>
- (void)changeColor;
end
@interface MyButton : UIView
// 2.设置代理人的属性
@property(nonatomic, assign)id<MyButtonDelegate>delegate;
@end
- MyButton.m文件
#import "MyButton.h"
@implementation MyButton
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
// 3.设置代理人执行的方法
[self.delegate changeColor];
}
@end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- MainViewController.m 文件
#import "MainViewController.h"
#import "MyButton.h"
@interface MainViewController ()<MyButtonDelegate> //4.签协议
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
MyButton *button = [[MyButton alloc]initWithFrame:CGRectMake(100, 100, 100, 40)];
button.backgroundColor = [UIColor yellowColor];
[self.view addSubview:button];
[button release];
// 5.设置代理人
button.delegate = self;
}
- (void)changeColor{
self.view.backgroundColor = [UIColor colorWithRed:arc4random() %256 / 255.0 green:arc4random() %256 / 255.0 blue:arc4random() %256 / 255.0 alpha:1];
}
........
@end