美文网首页
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---委托代理添加点击事件

    View点击事件的代理应用:当在View层添加一个按钮或其它的View使其具备点击的作用,通常的处理是就是把点击的...

  • iOS----block添加点击事件

    之前有介绍通过委托代理的方式来添加视图的点击事件的操作,如果嫌麻烦的童鞋,通过block的方式添加点击事件会更加简...

  • js事件代理机制

    JavaScript事件代理 当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委托给父...

  • 事件代理

    JavaScript事件代理 当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委托给父...

  • 概念

    事件委托,事件代理 事件代理又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理...

  • iOS开发笔记-24:文字中添加链接

    文字中添加链接 使用富文本来添加链接 代理方法处理点击事件

  • Javascript中的事件委托和代理

    Javascript中的事件委托和代理 当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事...

  • 解决IOS下事件委托失效的方法

    出现的BUG 当使用事件委托给【目标元素】添加 click 事件时,如果【代理元素】是 document或body...

  • 前端常见面试题(十一)@郝晨光

    什么是事件委托?为什么要用事件委托? 什么是事件委托? 事件委托,又称事件代理,就是将元素的事件处理交由父元素或者...

  • 代理:跨界面点击事件

    tableView的尾视图添加加载更多按钮;通过代理为按钮添加点击事件。 在控制器视图中设置代理: 实现代理方法:

网友评论

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

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