Tag: uigesturerecognizer

iOS – 在解散和滚动手势之间切换

Line Messenger应用程序(日本的事实上的Messenger软件)中有一个行为,我试图效仿。 基本上,他们有一个模式的视图控制器内的滚动视图。 当滚动动作到达其内容的顶部时,视图控制器无缝切换到交互式解除animation。 另外,当手势将视图返回到屏幕的顶部时,控制将返回到滚动视图。 这是它的外观的一个GIF。 对于我的生活,我无法弄清楚他们是如何做到的。 我尝试了一些不同的方法,但都失败了,我没有想法。 任何人都可以指向正确的方向吗? EDIT2 为了澄清,我想模仿的行为不仅仅是拖动窗口。 我可以做到这一点,没问题。 我想知道如何使用相同的滚动手势(不用抬起手指)触发解除转换,然后在视图被拖回到原始位置后,将控制权转移回滚动视图。 这是我无法弄清的部分。 结束编辑2 EDIT1 这是我迄今为止。 我能够使用滚动视图委托方法来添加处理常规解雇animation的目标select器,但它仍然不能按预期工作。 我创build一个UIWebView作为属性的UIViewController 。 然后我把它放在一个UINavigationController ,这是以模态方式呈现的。 导航控制器使用animation/转换控制器进行常规的交互式解除(可以通过在导航栏上进行手势来完成)。 从这里,一切正常,但不能从滚动视图触发解雇。 NavigationController.h @interface NavigationController : UINavigationController <UIViewControllerTransitioningDelegate> @property (nonatomic, strong) UIPanGestureRecognizer *gestureRecog; – (void)handleGesture:(UIPanGestureRecognizer*)gestureRecognizer; @end NavigationController.m #import "NavigationController.h" #import "AnimationController.h" #import "TransitionController.h" @implementation NavigationController { AnimationController *_animator; TransitionController *_interactor; } – (instancetype)init […]

iOS检测用户触摸版本

这可能已经张贴在这里某处,但我找不到它。 我正在用两个UIViews写一个简单的iOS应用程序。 用户将首先按住屏幕的某个区域,然后松开触摸,然后快速触摸下面的第二个视图。 第一个UIView有一个UILongPressGestureRecognizer附加到它,工作正常。 第二个UIView有一个UITapGestureRecognizer附加到它,也工作正常。 然而,我不能让这些手势识别器中的任何一个返回说明用户释放触摸的任何东西。 我试过这个代码无济于事: – (void)holdAction:(UILongPressGestureRecognizer *)holdRecognizer { if (UIGestureRecognizerStateRecognized) { holdLabel.text = @"Holding Correctly. Release Touch when ready."; holdView.backgroundColor = [UIColor greenColor]; } else if (UIGestureRecognizerStateCancelled){ holdLabel.text = @"Ended"; holdView.backgroundColor = [UIColor redColor]; } 任何build议将是伟大的,特别是如果有人知道如何实现一个呼叫,返回用户触摸设备的状态。 我查阅了开发者文档,并且已经空了。

UIScrollView覆盖我的子视图的平移手势识别器

如果我有一个子视图的scrollView和子视图有一个平移手势识别器,scrollView的平移手势覆盖子视图的平移。 我想要的是相反的,我认为,这是我拖动子视图将在滚动视图内平移,但如果我触摸另一个区域滚动视图将平移平常。 有没有简单的方法来设置?

使用平移手势移动CALayer时延迟

我使用平移手势在CALayer中移动图像。 我遇到的问题是,图像似乎移动了一点点延迟,并没有出现“卡住”我的手指。 这里是我如何移动图层的实际片段(facePic是CALayer): CGPoint translation =[touche locationInView:self.view]; self.facePic.frame = CGRectMake(translation.x – self.facePic.frame.size.width/2, translation.y – self.facePic.frame.size.height/2, self.facePic.frame.size.width, self.facePic.frame.size.height);

在Swift中以编程方式添加UIGestureRecognizer子视图

我目前有一个子视图创build并添加到ViewDidLoad()中的UIView。 我正在尝试使用UIGestureRecognizers来检测一个水龙头,并取消隐藏一个特定的button。 我目前的代码: override func viewDidLoad() { super.viewDidLoad() architectView = CustomClass(frame: self.view.bounds) self.view.addSubview(architectView) let gestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTap:") gestureRecognizer.delegate = self architectView.addGestureRecognizer(gestureRecognizer) } func handleTap(gestureRecognizer: UIGestureRecognizer) { let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil)) self.presentViewController(alert, animated: true, completion: nil) } handleTap()函数是一个简单的testing,看看是否被认可的水龙头。 这个代码在按下时不会触发UIAlert? 我错过了什么?

如何将两个UIGestureRecognizer链接在一起?

我想做的是检测作为同一触摸序列的一部分的滑动手势,接着是平移手势。 因此,用户首先滑动一个对象来执行一个动作,然后,当他们的手指保持在屏幕上时,向上/向下移动以将动作传播到周围的对象。 我有一个滑动手势识别器和一个平移手势识别器。 在我看来,使他们按照我想要的方式行事的理想方法是这样做的: [myPanGestureRecognizer requireGestureRecognizerToSucceed:mySwipeGestureRecognizer]; 但是,虽然我确信我不是只想象了requireGestureRecognizerToSucceed :,看来我有。 有没有一种方法来实现我想要没有inheritanceUIGestureRecognizer?

检测点击UITableViewCell中的UIImageView

我有一个自定义复杂的UITableViewCell有许多意见。 我有一个UIImageView它是可见的一个特定的条件。 当它可见时, 当用户点击UIImageView时,我必须执行一些操作。 我知道我必须为这个任务触发一个select器。 但我也想传递一个值给该方法(请参阅 – (void)onTapContactAdd:(id)发送者:(NSString *)uid下面)将被称为在UITableViewCell中的UIImageView上点击的动作我在说。 这是因为,使用传递的值,被调用的方法将完成工作。 这是我到目前为止所尝试的。 cell.AddContactImage.hidden = NO ; cell.imageView.userInteractionEnabled = YES; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTapContactAdd::)]; [tap setNumberOfTouchesRequired:1]; [tap setNumberOfTapsRequired:1]; [tap setDelegate:self]; [cell.AddContactImage addGestureRecognizer:tap]; -(void)onTapContactAdd :(id) sender : (NSString*) uid { NSLog(@"Tapped"); // Do something with uid from parameter } 当我点击时不会调用这个方法。 我已经添加在我的头文件。 感谢您的帮助提前。

UITapGestureRecognizer没有做任何事情

我有一个应用程序,显示一个文本的页面的能力,点击一个button或刷卡在视图中通过各种页面进退。 容器视图有两个附加的UISwipeGestureRecognizers,用于向左滑动并向右滑动。 没有这些手势的麻烦。 但是现在我正试图将UITapGestureRecognizer添加到另一个视图,提供类似于iBooks或Kindle应用程序的function,点击左侧返回,右侧前进。 我做的任何事情都可以让手势起火。 没有任何暗示它会被触发,即使我将手势放在最顶端的视图上并禁用其他手势。 视图控制器实现UIGestureRecognizerDelegate,但我不需要实现委托方法。 我曾尝试实施shouldReceiveTouch:没有成功。 下面是我创build并附加手势识别器的一段代码: UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureTurnPage:)]; [self.view addGestureRecognizer:recognizer]; [recognizer release];

当我使用手势识别器时,表格视图不会滚动

我的应用程序有一个表格视图(当然还有一个滚动窗口),这个视图通过一个手势识别器(如Facebook应用程序)来打开和closures。 如果我使用一个button来将[表格视图拖动到屏幕上],它工作正常,但是当我使用手势识别器时,表格视图不能再滚动。 下面是有问题的手势识别器的代码: [self.view addGestureRecognizer:self.slidingViewController.panGesture]; 有人有一个想法?

在UIView中的BezierPath旋转

我正在绘制一个BezierPath on Touch事件。 现在我必须使用手势方法在相同的位置上旋转Bezierpath。 但问题是,轮换之后它的地位就变了。 它看起来像下面的图像..我怎样才能解决这个问题? 上图是原始图像。 与我分享你的想法..在此先感谢