美文网首页
iOS---委托代理添加点击事件

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

作者: lizhi_boy | 来源:发表于2017-01-11 14:38 被阅读116次

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

    1、在.h自定义view上声明协议
    
    @protocol MyViewDelegate <NSObject>
    
    
    //@required      //必须执行的方法
    //- (void)clickEvent:(UIButton *)sender;
    
    
    @optional   //可选择执行的方法
    - (void)clickEvent:(UIButton *)sender;
    
    @end
    
    @interface MyView : UIView
    
    @property (nonatomic,strong) UIButton *myButton;
    
    //声明代理属性
    @property (nonatomic, weak) id<MyViewDelegateDelegate> delegate;
    
    @end
    
    2、在.m文件
    //view的子类视图响应的方法(比UIButton的点击事件)
    - (void)test{
        if ([self respondsToSelector:@selector(test)]) {
            [self.delegate clickEvent:self.myButton];
        }
    }
    
    3、在controller.m文件中
    @interface ViewController ()<MyViewDelegate>
    
    @property (nonatomic,strong) MyView*myView;
    
    @end
    
    4、遵守协议
    self.myView.delegate = self;
    
    5、执行方法
    - (void)clickEvent:(UIButton *)sender{
    //点击了
    }
    
    

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

    相关文章

      网友评论

          本文标题:iOS---委托代理添加点击事件

          本文链接:https://www.haomeiwen.com/subject/oxkrbttx.html