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

2018-04-03  本文已影响6人  sky_fighting

步骤一:创建继承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事件的使用
上一篇 下一篇

猜你喜欢

热点阅读