Fra*_*cis 32 uigesturerecognizer ios swift ios8
我正在使用Swift制作iOS8应用程序.我希望用户能够使用手势来显示界面的某些部分.因此,例如,用户将他们的手指向上滑动,他们滑动手指的视图移开,按照他们的手指显示下面的另一个视图.
我想要的是一个手势,给出一个类似于你可以从屏幕顶部拉下来的通知框的结果.我一直在看文档,我似乎无法找到合适的手势.
我看到一个名为UISwipeGestureRecogniser,但唯一的问题是,它不会跟随你的手指,它只是在我向上/向下滑动手指时运行一个功能.
这是文档页面:https: //developer.apple.com/documentation/uikit/uigesturerecognizer
vac*_*ama 88
您正在寻找UIPanGestureRecognizer.您可以在此处找到Apple文档.
这是一个用手指移动视图的示例处理程序.在Interface Builder中,将a添加UIPanGestureRecognizer到您希望能够拖动的视图中.将代表设置为您的ViewController.将操作设置为此操作:
Swift 2.X:
@IBAction func handlePan(gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .Began || gestureRecognizer.state == .Changed {
let translation = gestureRecognizer.translationInView(self.view)
// note: 'view' is optional and need to be unwrapped
gestureRecognizer.view!.center = CGPointMake(gestureRecognizer.view!.center.x + translation.x, gestureRecognizer.view!.center.y + translation.y)
gestureRecognizer.setTranslation(CGPointMake(0,0), inView: self.view)
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
@IBAction func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: self.view)
// note: 'view' is optional and need to be unwrapped
gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y)
gestureRecognizer.setTranslation(CGPoint.zero, in: self.view)
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以通过UIPanGestureRecognizer编程方式添加:
在viewDidLoad您ViewController创建的识别,并将其添加到您要能够拖动的观点:
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
self.someDraggableView.addGestureRecognizer(gestureRecognizer)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36626 次 |
| 最近记录: |