swift Uivew 添加点击事件

    privatestructAssociateKeys {

        staticvargestureKey ="gestureKey"

        staticvartapBlock ="tapBlock"

    }

    func yx_setTapActionWithBlock(tapBlock:@escaping() ->Void){

        self.isUserInteractionEnabled = true

        var tapGesture = objc_getAssociatedObject(self, &AssociateKeys.gestureKey) as? UITapGestureRecognizer

        if(tapGesture==nil){

            tapGesture =UITapGestureRecognizer.init(target:self, action:#selector(handleActionForTapGesture(_:)))

            tapGesture!.numberOfTapsRequired=1

            self.addGestureRecognizer(tapGesture!)

            objc_setAssociatedObject(self, &AssociateKeys.gestureKey, tapGesture, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)

        }

        objc_setAssociatedObject(self, &AssociateKeys.tapBlock, tapBlock, .OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    }


    @objcfunchandleActionForTapGesture(_gesture:UITapGestureRecognizer) {

        lettapBlock =objc_getAssociatedObject(self, &AssociateKeys.tapBlock)as? () ->Void

        if(tapBlock!=nil) {

            tapBlock!()

        }

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容