Tag: uigesturerecognizer

在iOS中使用手势导航UIViewController

我有几个视图控制器embeddedUINavigationController(一些模式,一些推),并通过使用滑动手势浏览他们, // Gesture recognizers UISwipeGestureRecognizer *downGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(dismissButton)]; downGesture.direction = UISwipeGestureRecognizerDirectionDown; [downGesture setCancelsTouchesInView:NO]; [self.view addGestureRecognizer:downGesture]; 这工作正常,但是我希望用户能够物理拖动模态表示的视图控制器,例如,向下和closures屏幕,而不仅仅是一个轻弹和一个animation做剩下的事情,或拖动到屏幕上,并捕捉到而不是点击后退button。 我已经尝试过在视图上使用平移手势来实现这一点,但是当然前面的视图控制器在它后面是不可见的,它是需要的。 这个效果如何正确实现? 视图控制器遏制? 如果是这样的话,将几个视图控制器放到堆栈上时会如何工作? 我在谈论的导航types的一个例子可以在LetterPress应用程序中find。 谢谢。

UIScrollView的iOS5 UITapRecognizer干扰button。 怎么修?

我有UIScrollView UIView内的一堆UIButton 。 我正在试图添加一个水龙头识别器的滚动视图。 轻拍识别器触发,但现在我的button没有任何工作。 我知道,在iOS5中, UIScrollView可以以某种方式将触摸事件传递给控制层次。 任何人都可以帮我弄清楚如何做到这一点?

UIPanGestureRecognizer有时不适用于iOS 7

我收到iOS 7用户的间歇性报告,说UIPanGestureRecognizer每UIPanGestureRecognizer停止在某些视图上工作。 他们应该能够将视图向左/向右滑动,但是只是因为某些未知的原因而中断并且不起作用。 强制退出应用程序并重新启动它可以解决问题。 这个问题在iOS 6上从来没有发生过。而且我没有任何代码在除了gestureRecognizerShouldBegin委托之外的任何时候禁用了手势识别器,强制手势只识别水平平底锅: – (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer { if ([gestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]]) { CGPoint translation = [gestureRecognizer translationInView:[self superview]]; if (fabsf(translation.x) > fabsf(translation.y)) { if (translation.x > 0) return YES; } } return NO; } UIPanGestureRecognizer (或者简单的UIGestureRecognizer )有什么改变,可能会导致这个问题?

导航popup视图时,像刷Instagram的iPhone应用程序。如何实现这一目标?

我想在屏幕上向右滑动时popup视图,或者像导航栏的后退button那样工作。 我在用: self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self; 这一行的stream行导航视图的代码,这是一个工作,但当我滑过屏幕中间,这不会像Instagram的iPhone应用程序工作。 在这里,我给你一个Instagram的应用程序的屏幕,你可以看到右刷新权限popup导航视图的示例:

如何捕获WKWebView忽略的水龙头

我有一个包含WKWebView的视图。 我的html内容是由我的应用程序生成的,所以我确定它绝对不会比屏幕宽,所以我在它的超级视图上使用UIGestureRecognizer来对左右滑动做出反应。 这很好。 我也想看看不在链接上的任何点击,所以我可以决定我可能想要做什么。 看来, WKWebView吸了所有的水龙头。 我试着要求它提供一系列的手势识别器,这样我就可以和他们build立一些合作关系,但是无论我什么时候问(无论是在创buildWKWebView之后,在加载了我的HTML文件之后,已完成加载)。 这是有道理的,如果WKWebView不使用UIGestureRecognizer机制,而是只是看着水龙头,而不是传递给他们,如果它不感兴趣。 任何想法获得访问WKWebView的不需要的水龙头?

将UIPanGestureRecognizer和UISwipeGestureRecognizer添加到相同视图会导致设置requireGestureToFail

我在相同的视图中添加了滑动手势识别器和平移手势识别器。 这些手势应该是相互排斥的。 为了做到这一点,我添加了滑动手势的约束 [swipeGesture requireGestureToFail:panGesture]; (因为平移手势应该优先) 问题在于平移手势总是被调用 – 即使在非常快速的滑动过程中也是如此。 为了达到这个目的,我把自己定位为泛姿态的代表。 在委托方法中,我设置了一些代码如下: – (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { // check if it is the relevant view if (gestureRecognizer.view == self.myViewWithTwoGestures) { // check that it is the pan gesture if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { UIPanGestureRecognizer *pan = (UIPanGestureRecognizer *)gestureRecognizer; CGPoint velocity = [pan velocityInView:gestureRecognizer.view]; // added an arbitrary […]

UIPinchGestureRecognizer。 放大手指的位置,不仅中心

我可以使用UIPinchGestureRecognizer在UIPinchGestureRecognizer的视图中进行UICollectionViewCell ,但是无论您开始制作UIPinch手势的位置如何,放大总是放在视图的中心。 例如,我想捏在视图的左上angular区域,并在我触摸屏幕的位置创build缩放。 但是,如果我这样做,缩放是在视图的中心创build。 这是我用来进行缩放的代码: if([gesture state] == UIGestureRecognizerStateBegan) { previousScale = 1.0; } if ( [gesture state] == UIGestureRecognizerStateChanged) { CGFloat currentScale = [[[gesture view].layer valueForKeyPath:@"transform.scale"] floatValue]; // Constants to adjust the max/min values of zoom const CGFloat kMaxScale = 4.0; const CGFloat kMinScale = 1.0; CGFloat newScale = 1 – (previousScale – [gesture […]

button水龙头和长按手势

我在手势上有点麻烦 我正在尝试使用同一button上的轻按和长按,所以我使用了 @IBAction func xxx (sender: UITapGestureRecognizer) 和 @IBAction func xxx (sender: UILongPressGestureRecognizer) 但是当我点击时,我的button似乎对这两个function都有反应。 什么可能是错的? func long(longpress: UIGestureRecognizer){ if(longpress.state == UIGestureRecognizerState.Ended){ homeScoreBool = !homeScoreBool }else if(longpress.state == UIGestureRecognizerState.Began){ print("began") } }

UIImageView上的手势识别器(滑动)

我正在尝试使用此代码扫描UIImageView时的NSLog,但由于某种原因它不起作用。 任何想法 ? @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; UIImage *image = [UIImage imageNamed:@"image2.png"]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = [[UIScreen mainScreen] bounds]; [self.view addSubview:imageView]; UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)]; [recognizer setNumberOfTouchesRequired:1]; [imageView addGestureRecognizer:recognizer]; } – (void)rightSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer { NSLog(@"right swipe"); }

迅速UIGestureRecogniser跟随

我正在使用Swift制作iOS8应用程序。 我希望用户能够使用手势来揭示界面的某些部分。 因此,例如,用户将手指向上滑动,手指向上滑动的视线沿着手指移动,从而露出另一个视图。 我想要的是一个手势来给出类似于通知框的结果,你可以从屏幕的顶部拉下来。 我一直在看文件,我似乎无法find一个合适的手势。 我看到一个名为UISwipeGestureRecogniser的,但唯一的问题是,它不跟随你的手指,当我滑动手指时,它只是运行一个函数。 以下是文档页面: https : //developer.apple.com/documentation/uikit/uigesturerecognizer