- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 Swift 制作一个 iOS8 应用程序。我希望用户能够使用手势来显示界面的某些部分。因此,例如,用户向上滑动他们的手指,然后他们向上滑动手指的 View 移开,跟随他们的手指以显示下面的另一个 View 。
我想要的是一种手势,可以提供类似于可以从屏幕顶部向下拉的通知框的结果。我一直在查看文档,但似乎找不到合适的手势。
我看到一个叫做 UISwipeGestureRecogniser 的,但唯一的问题是,它不会跟随你的手指,它只是在我向上/向下滑动手指时运行一个函数。
这是文档页面: https://developer.apple.com/documentation/uikit/uigesturerecognizer
最佳答案
您正在寻找 UIPanGestureRecognizer。您会找到 Apple 文档 here .
这是一个示例处理程序,它将用您的手指移动 View 。在 Interface Builder 中,将 UIPanGestureRecognizer
添加到您希望能够拖动的 View 。将委托(delegate)设置为您的 ViewController
。将 Action 设置为这个 Action :
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)
}
}
swift 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)
}
}
当然,您可以通过编程方式添加UIPanGestureRecognizer
:
在 viewDidLoad
中为您的 ViewController
创建识别器并将其添加到您希望能够拖动的 View 中:
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
self.someDraggableView.addGestureRecognizer(gestureRecognizer)
关于ios - Swift UIGestureRecogniser 跟随手指,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503537/
我用 cocos2d 制作了我的第一个应用程序,所以我在这里很新 我的第一个问题: 我不会让物体(船)跟随我的手指。 -(void) ccTouchMoved:(UITouch *)touch wit
如果某人将右手压在扫描仪的玻璃上进行扫描,结果将如下所示: (没有橙色和白色注释)。我们如何确定某人的 2D:4D ratio从他们的手的图像? 最佳答案 您已经标记了这个很棒的 opencv - 我
我的 View Controller 中有几个 UIScrollView。我想覆盖一个通过 UIPanGestureRecognizer 捕获 2 根手指滑动的 View ,它不会记录 UIScrol
现在这真是令人困惑...在不离开页面的情况下更新 mysql 数据库...我有 3 位代码。 head 标签中的 javascript、body 中的操作按钮以及要在另一个页面上执行的代码。以下是三个
我有这段代码是从 Style clipboard in flutter 得到的 showMenu( context: context, // TODO: Positio
我是一名优秀的程序员,十分优秀!