2016-01-06 217 views
0

我努力学习斯威夫特,这有我真的很困惑:斯威夫特UIGestureRecognizer符号

说你加入了手势:

 faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: "scale:")) 

这是尺度函数:

func scale(gesture: UIPinchGestureRecognizer) { 

    if gesture.state == .Changed { 
     scale *= gesture.scale 
     gesture.scale = 1 
    } 

} 

为什么在缩放结束时会出现冒号(例如:“scale:”)?是否要引用scale函数接受UIPinchGestureRecognizer类型的参数这一事实?

如果是,那么冒号是如何表示该参数的?

+0

可能重复[@selector()在Swift?](http://stackoverflow.com/questions/24007650/selector-in-swift) –

+1

@RashwanL would'nt重复,但非常相关。还相关:[何时使用冒号与选择器](http://stackoverflow.com/questions/4953623/when-to-use-a-colon-with-a-selector) – tskulbru

回答

1

手势识别器是参数。通过指定冒号,您可以像您想的那样,将类型(识别器)作为参数发送。如果你省略了冒号,你将需要一个没有识别器作为参数的函数。