首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

[Swift UIPanGestureRecognizer]Pa

2024-12-18 来源:化拓教育网

Pan手势识别的声明:

let panRecognizer =  UIPanGestureRecognizer(target: self, action: #selector(URVIEWController.respondsToPenGesture))

self.view.addGestureRecognizer(panRecognizer)

设置后面调用的方法:respondsToPenGesture

func respondsToPenGesture(sender: UIPanGestureRecognizer) {}

最重要的就是在方法中根据 手势的state来作出不同的响应:

if (sender.state == UIGestureRecognizerState.Began) {

startPanLocation = sender.locationInView(URVIEW)

} else if (sender.state == UIGestureRecognizerState.Changed) {

let stopLocation = sender.locationInView(URVIEW)

let abscissaChange = stopLocation.x - startPanLocation!.x

} else if (sender.state == UIGestureRecognizerState.Ended) {

let stopLocation = sender.locationInView(URVIEW)

let abscissaChange = stopLocation.x - startPanLocation!.x

}

需要注意的是 startPanLocation 你需要存在一个全局变量里,因为在你state.changed时候,如果不是全剧变量你取不到starPanLocation的值。

剩下的事情就比较简单了 你获得了abscissaChange 同理也能简单的到竖直方向的变化值,用这个值来对于你想要改变的值做一个加减计算就可以轻松实现 Slider的功能。

Prisma的slider的功能也应该是一个道理来实现的,在view上在设置一个UITextlabel 就能达到一摸一样的功效,(当然还要加上一个延迟消失的效果,可以用dispatch_after来实现)

Good Luck ,tlm . 

显示全文