美文网首页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("是不是可以打印")
           
        }
        
    }
    
    
    
    
    

    相关文章

      网友评论

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

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