美文网首页
swift闭包(以view tap事件为例)

swift闭包(以view tap事件为例)

作者: sky_fighting | 来源:发表于2018-04-03 14:23 被阅读6次

    步骤一:创建继承UIView的类AFView,并声明一个带参,返回值为空的闭包

    typealias clickViewEvent = (_ sender: UIView)->()

    步骤二:声明私有属性clickEvent,类型为步骤一声明的clickViewEvent

    private var clickEvent: clickViewEvent?

    步骤三:声明一个实例方法,参数为闭包类型,代码如下,属性赋值,并且给view添加tap事件

    func clickView(action: clickViewEvent?) {       

          clickEvent = action   

          let tap = UITapGestureRecognizer(target: self, action: #selector(clickViewEvent(sender:)))       

          self.addGestureRecognizer(tap)

    }

    步骤四:实现view的tap事件

    @objc private func clickViewEvent(sender:UITapGestureRecognizer){       

          guard let block = clickEvent else { return }        //判断闭包是否为空

          block(sender.view!)   //回调---参数为view

    }

    如下图所示:

    view添加tap事件

    步骤五:创建view,并使用点击事件

    view tap事件的使用

    相关文章

      网友评论

          本文标题:swift闭包(以view tap事件为例)

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