美文网首页Swift开发
Swift 方法选择器 Selector 监听事件

Swift 方法选择器 Selector 监听事件

作者: 追逐_chase | 来源:发表于2017-12-07 11:55 被阅读9次
Swift.png
在编程的过程中监听事件是我们经常使用的,在OC中使用@SEL选择器,那么在Swift中 Selector选择器,
  • 监听事件的本质是 发送消息,也就是OC 中的消息机制 原理如下:

    • 将方法包装成@SEL
    • 在类中查找方法列表
    • 根据@SEl找到 imp指针(对应的函数)
    • 执行找到的函数
  • 需要知道的是 Swift中没有消息机制,那么在使用Selector选择器的时候 需要进行包装,使用如下:

    • Selector("方法的名字")
    • 直接写方法名 格式:"方法名"
    • #selector(方法名)
    • 对应的方法名 必须加 @objc 转化成OC 的方法
  • 注意 一个函数被 声明成 private 函数,那么该函数就不会被添加到方法列表中,那么这个函数就不会被找到, 如果想要被找到 必须加 @objc


  private lazy var paluseBtn:UIButton = {
    
        $0.setImage(UIImage(named:"tabbar_compose_icon_add"), for: .normal);
        $0.setImage(UIImage(named:"tabbar_compose_icon_add_highlighted"), for: .highlighted);
        $0.setBackgroundImage(UIImage(named:"tabbar_compose_button"), for: .normal)
        $0.setBackgroundImage(UIImage(named:"tabbar_compose_button_highlighted"), for: .highlighted)
//方法选择 
        $0.addTarget(self, action: #selector(didClickButton), for: .touchUpInside);
        $0.sizeToFit();

        self.addSubview($0);
    
    
    return $0;
    
    }(UIButton(type:.custom));



//MARK:-监听事件
extension CCTabBar {
  
//函数见面必须 添加   @objc  

    @objc private func didClickButton() {
       
        print("是不是可以打印")
       
    }
    
}




相关文章

  • Swift3.0 功能 (更新中...)

    Selector参数 Swift3.0版本 #selector 事件监听本质: 将方法包装成@SEL -> 类中查...

  • Swift 方法选择器 Selector 监听事件

    在编程的过程中监听事件是我们经常使用的,在OC中使用@SEL选择器,那么在Swift中 Selector选择器, ...

  • Swift与OC的区别

    Swift与OC的区别 1、基础篇 2、监听方法 OC 使用 @selector(actionName) Sw...

  • Java NIO(四):Selector

    Selector 作用 Selector (选择器)用于检测一到多个 NIO Channel(通道),监听通道的事...

  • 2018-09-29

    事件委托 事件委托:方法delegate,只绑定一次事件,冒泡触发 参数: selector选择器:写入ul下面的...

  • jQuery属性动画循环

    事件委托 事件委托:方法delegate,只绑定一次事件,冒泡触发参数:selector选择器:写入ul下面的所有...

  • JQuery属性动画循环

    1. 事件委托 事件委托:方法delegate,只绑定一次事件,冒泡触发参数:selector选择器:写入ul下面...

  • 如何防止输入框被弹出虚拟键盘覆盖方法

    1、添加键盘高度变化监听事件 其中,name参数就是设置监听状态。 2、实现selector方法 3、虚拟键盘消失...

  • Runtime基本用法

    Runtime的一些术语 SEL方法选择器 它是selector在 Objc 中的表示(Swift 中是 Sele...

  • Swift - 选择器(Selector)

    Swift中依然可以使用选择器,使用#selector(name)定义一个选择器 必须是被@objcMembers...

网友评论

    本文标题:Swift 方法选择器 Selector 监听事件

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