swift中 仿照oc中的block
typealias 是用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰。使用的语法也很简单。
typealias SelectedBlock = (view :UIView,selectIndex:Int)->()
定义一个闭包变量
var block: SelectedBlock?
只需要调用传入相关参数(本例子是self,index)两个参数
if block != nil {
self.block!(view: self,selectIndex: index)
}
定义一个方法供其他类使用
func didSelectBlock(selectedEvent:SelectedBlock) {
block = selectedEvent
}
其他类中引用:(demo就相当于实例,无视掉它的初始化 ,直接看didSelectBlock方法)
let demo = SlideView(frame: CGRectMake(0, 20, SCREEN_WIDTH ,SCREEN_HIGH - 20), withTitle: titles, withViews: views)
demo.didSelectBlock { (view, selectIndex) -> Void in
print(selectIndex)
switch selectIndex {
case 0:
"0"
case 1:
"1"
default:
"2"
}
}