iOS---委托代理添加点击事件

View点击事件的代理应用:当在View层添加一个按钮或其它的View使其具备点击的作用,通常的处理是就是把点击的代码放到controller中来,这样显得牵强,既然View层是单独Controller的单独存在的,那么它的点击事件也是应该封装在View层,而我们调用点击事件的时候只要调用点击的方法即可。下面是我的做法,不喜勿喷。

1、在.h自定义view上声明协议

@protocol MyViewDelegate 


//@required      //必须执行的方法
//- (void)clickEvent:(UIButton *)sender;


@optional   //可选择执行的方法
- (void)clickEvent:(UIButton *)sender;

@end

@interface MyView : UIView

@property (nonatomic,strong) UIButton *myButton;

//声明代理属性
@property (nonatomic, weak) id delegate;

@end

2、在.m文件
//view的子类视图响应的方法(比UIButton的点击事件)
- (void)test{
    if ([self respondsToSelector:@selector(test)]) {
        [self.delegate clickEvent:self.myButton];
    }
}

3、在controller.m文件中
@interface ViewController ()

@property (nonatomic,strong) MyView*myView;

@end

4、遵守协议
self.myView.delegate = self;

5、执行方法
- (void)clickEvent:(UIButton *)sender{
//点击了
}

若有帮助到的同学,点个喜欢!

你可能感兴趣的:(iOS---委托代理添加点击事件)