Tag: uigesturerecognizer

如何将一个segue添加到UIGestureRecognizer

我正在使用Storyboards第一次构build一个应用程序。 当有一个特定的button长按,我想有一个场景,我想打开另一个场景。 我可以添加没有问题的UILongPressGestureRecognizer ,但我无法弄清楚如何让这个手势成为其他场景的延续。 似乎并不重要我按Ctrl – 拖动,没有任何工作。 我错过了什么明显的? 谢谢,肯

我负责释放一个UIView的gestureRecognizers在dealloc?

我已经将UIGestureRecognizer附加到UIView。 在dealloc期间释放这个是谁的责任? 特别: UITapGestureRecognizer *t = [[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(tapHandler:)]; [self.view addGestureRecognizer:t]; [t release]; 所以,self.view目前只有gestureRecognizer保留。 更新我应该更清楚。 我的问题与视图dealloc方法有关。 当视图被释放时,视图的超类是否处理了gestureRecognizer的释放。 我目前认为是这样。

UIGestureRecognizer导致循环保留?

我在想,如果在手势识别器的initWithTarget:action:方法中将目标指定为self ,是否会导致循环保留? 由于self会保留self.gestureRecognizers的识别器,因此手势识别器也可以在initWithTarget:action保留self。 以下是解决scheme吗? __weak VRDrawer* weakSelf = self; UIGestureRecognizer* tapRec = [[UITapGestureRecognizer alloc] initWithTarget:weakSelf action:@selector(handleTap:)];

用UIGestureRecognizer旋转瓶子

我现在使用这个代码来旋转button上的瓶子: @IBAction func spinButton(sender: AnyObject) { let rotateView = CABasicAnimation() let randonAngle = arc4random_uniform(360) + 720 rotateView.fromValue = 0 rotateView.toValue = Float(randonAngle) * Float(M_PI) / 180.0 rotateView.duration = 3 rotateView.delegate = self rotateView.repeatCount = 0 rotateView.removedOnCompletion = false rotateView.fillMode = kCAFillModeForwards rotateView.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut) bottleImageView.layer.addAnimation(rotateView, forKey: "transform.rotation.z") } 但是我怎样才能使用手势旋转button? 所以越快越快我的手指,瓶子旋转得越快

用GestureRecognizer绘制UIImage面具

我试图结合2个机制,我没有find一个解决scheme很远。 这是我想要做的: 我有一个例程,允许我在UIImage图层上绘制一个具有第二个UIImage的蒙版,在蒙版下面包含我正在绘制蒙版的图像。 这似乎工作正常,当我finfinhed我只是结合到2层,然后应用面具和图像看起来'切出'。 问题是我想能够缩放,平移蒙版和图像,以便能够在缩放模式下应用更精确的蒙版。 部分应用程序使用GestureRecognizers来移动图像进行截图,所以我认为我可以将面具绘图和手势例程结合起来。 这是我迷路的地方,它不工作。 面具绘图程序 override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { swiped = false if let touch = touches.first as? UITouch { lastPoint = touch.locationInView(self.view) } } func drawLineFrom(fromPoint: CGPoint, toPoint: CGPoint) { UIGraphicsBeginImageContext(tempImageView.frame.size) let context = UIGraphicsGetCurrentContext() tempImageView.image?.drawInRect(CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height)) CGContextMoveToPoint(context, fromPoint.x, fromPoint.y) CGContextAddLineToPoint(context, […]

在使用捏手势时,uiview的界限是否会改变?

我正在使用UIPinchGestureRecognizer来扩展/缩小uiview。 UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scaleElement:)]; [pinchGesture setDelegate:self]; [element addGestureRecognizer:pinchGesture]; [pinchGesture release]; //比例元素方法 – (void)scaleElement:(UIPinchGestureRecognizer *)gestureRecognizer { UIView *element = [gestureRecognizer view]; [self adjustAnchorPointForGestureRecognizer:gestureRecognizer]; if ([gestureRecognizer state] == UIGestureRecognizerStateBegan){ lastTouchPosition = [gestureRecognizer locationInView:element]; } else if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged){ CGPoint currentTouchPosition = [gestureRecognizer locationInView:element]; CGPoint deltaMove = […]

添加滑动手势以显示详细视图中的下一个项目

从集合视图我已经通过细节我想通过细节到详细视图控制器。 – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { SportsCollectionViewCell *selectedCell = (SportsCollectionViewCell *)sender; SportsBrowserViewController *targetVC = (SportsBrowserViewController *) [segue destinationViewController]; targetVC.targetURL = selectedCell.targetURL; targetVC.sdesc = selectedCell.description.text; targetVC.stitle = selectedCell.title.text; targetVC.simage = selectedCell.image.image; targetVC.scat = selectedCell.category.text; targetVC.sdate = selectedCell.date.text; } 我想现在向目标视图控制器添加滑动手势,以便我可以到达下一篇文章,而不必返回到主页面。 我已经添加了以下设置手势。 UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandler:)]; [recognizer setDirection:UISwipeGestureRecognizerDirectionLeft]; [[self view] addGestureRecognizer:recognizer]; } -(IBAction)swipeHandler:(UISwipeGestureRecognizer *)sender{ […]

UIScrollView子视图中的水平UISwipeGestureRecognizer? (UIScrollView只需要识别垂直滚动)

我有一个UIScrollView,我添加了一个子视图。 scrollview垂直滚动,这就是它应该做的。 我现在想通过UISwipeGestureRecognizer来识别子视图中的左/右滑动。 我知道这是可能的,但我没有遇到一个解决scheme,并尝试了几次失败。

Swift – 如何从移动到另一个时从场景中删除滑动手势?

所以我的游戏使用滑动手势,在我didMoveToView()函数我有这些手势初始化: let swipeRight = UISwipeGestureRecognizer() swipeRight.direction = UISwipeGestureRecognizerDirection.Right self.view?.addGestureRecognizer(swipeRight) let swipeLeft = UISwipeGestureRecognizer() swipeLeft.direction = UISwipeGestureRecognizerDirection.Left self.view?.addGestureRecognizer(swipeLeft) let swipeUp = UISwipeGestureRecognizer() swipeUp.direction = UISwipeGestureRecognizerDirection.Up self.view?.addGestureRecognizer(swipeUp) let swipeDown = UISwipeGestureRecognizer() swipeDown.direction = UISwipeGestureRecognizerDirection.Down self.view?.addGestureRecognizer(swipeDown) 问题是,当我移动到我的GameOver场景,我刷卡,它崩溃我的应用程序。 我注意到有人发布了类似的东西,并得到了这个答案 override func willMoveFromView(view: SKView) { for recognizer in self.view.gestureRecognizers! { self.view.removeGestureRecognizer(recognizer) } } 仍然不太清楚在切换到游戏之前如何实现这个和/或从场景中移除手势。 谁能帮忙?

iOS – 手势识别器translationInView

我在平移手势识别器中使用以下代码行: CGPoint translation = [sender translationInView:self.view]; 如果将关联的处理移动到长按手势识别器,则不存在translationInView方法。 我的问题是,如果使用长按识别器,我怎样才能获得相同的翻译价值? 谢谢