签订协议,点击button,来实现改变背景颜色.
创建MyButton类,继承于NSObject
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
3.通过touch方法,来设置代理人执行的方法.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.delegate changeColor];
}
RootViewController.m
#import "RootViewController.h"
#import "MyButton.h"
4.签协议.
@interface RootViewController ()<MyButtonDelegate>
@end
@implementation RootViewController
- (void)viewDidLoad {
// 创建一个myButton对象.
MyButton *button = [[MyButton alloc] initWithFrame:CGRectMake(100, 100, 150, 50)];
button.backgroundColor = [UIColor greenColor];
[self.view addSubview:button];
[button release];
5.设置代理人.
button.delegate = self;
}
6.实现协议方法.
- (void)changeColor {
// 设置随机的背景颜色.
self.view.backgroundColor = [UIColor colorWithRed:arc4random() % 256 / 255.0 green:arc4random() % 256 / 255.0 blue:arc4random() % 256 /255.0 alpha:1];
}
UI09_协议控制
最新推荐文章于 2023-07-05 11:15:22 发布