Swift 方法选择器 Selector 监听事件

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("是不是可以打印")
       
    }
    
}




你可能感兴趣的:(Swift 方法选择器 Selector 监听事件)