- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想向基于 View 的 iPhone 项目添加简单的滑动手势识别。应识别所有方向(右、下、左、上)的手势。
在 UISwipeGestureRecognizer 的文档中有说明:
You may specify multiple directions by specifying multiple UISwipeGestureRecognizerDirection constants using bitwise-OR operands. The default direction is UISwipeGestureRecognizerDirectionRight.
但是对我来说它不起作用。当所有四个方向都进行“或”运算时,仅识别左右滑动。
- (void)viewDidLoad {
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionUp)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
[super viewDidLoad];
}
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
}
我通过向 View 添加四个识别器来修复此问题,但我很想知道为什么它没有像文档中宣传的那样工作?
- (void)viewDidLoad {
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
[super viewDidLoad];
}
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
}
最佳答案
似乎有一个错误。您可以像以前一样指定允许的方向。但是,当您尝试访问触发操作选择器方法中的滑动的实际方向时,您仍然会得到您最初设置的位掩码(对于允许的方向)。
这意味着当允许超过 1 个方向时,对实际方向的检查将始终失败。当您在选择器方法(即 -(void)scrollViewSwiped:(UISwipeGestureRecognizer *)recognizer
)中输出“方向”的值时,您可以很容易地自己看到它。
向 Apple 提交错误报告 (#8276386)。
[更新] 我得到了 Apple 的答复,说该行为按预期工作。
例如,在表格 View 中,您可以在表格 View 单元格中向左或向右滑动以触发“删除”(这会将滑动手势的方向设置为向左和向右)
这意味着原来的解决方法是它应该使用的方式。 direction 属性只能用于正确识别手势,但不能在成功识别时执行的方法中比较触发识别的实际方向。
关于ios - 为 UISwipeGestureRecognizer 设置方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3319209/
我有这个代码: UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self
我在调用两次 UISwipeGestureRecognize 时遇到问题,我创建了基于 tabbarcontroller 的应用程序,该应用程序有 4 个选项卡。每个选项卡在该 UIViewContr
是否有一种简单的方法可以延长滑动被识别之前必须移动的距离。看来默认值真的很短。它不仅仅是一个水龙头,但只是勉强。我是否需要创建自定义手势识别器来覆盖此距离? 谢谢。 最佳答案 没有记录的属性可以设置,
我需要根据用户是否滑动屏幕顶部、屏幕中间或屏幕底部来触发不同的事件。我正在尝试找出最好/最简单的方法来做到这一点,因为我很确定没有办法从 UISwipeGestureRecognizer 获取位置。
我正在使用 UISwipeGestureRecogizer刷卡left和 right通过使用 UISwipeGestureRecognizerDirectionRight和 UISwipeGestur
我在 iOS 应用程序中收到无法识别的选择器发送错误。我尝试根据其他类似线程中提到的答案解决该问题,但失败了。请看一下下面的代码并帮助我解决这个问题。 谢谢 class ThirdViewContro
我已经为左/右设置了一个 GestureRecognizer,但我还想为向下(但不是向上)添加一个 GestureRecognizer。当我应用以下内容时,向上滑动在设备屏幕上按预期工作;但是,UIS
我在我的UITabBarController中使用UISwipeGestureRecogniser: class TabBarController: UITabBarController {
我有一个滑动手势识别器,在用户滑动后将其关闭。那时我有一系列动画。第一, View 将沿着用户滑动的方向移动。然后,根据它停止的位置,根据它停止的位置发生另一个动画。然后,我在处理此滑动的函数末尾一直
我有以下 UIGestureRecognizer 可以正确检测向上滑动 - (void) addGestureRecognizer { _swipeRecognizer = [[UISwipe
我在使用 UISwipeGestureRecognizer 时遇到了一些异常行为。可以正确检测到第一次滑动,但无法正确检测到第二次滑动。然后第三次滑动被正确检测到,但第四次没有被正确检测到,等等。我有
我想在滑动 UItextView 时调用一个方法,并确定其标签。我正在使用这段代码: -(IBAction)donecomment:(id)sender{ UISwipeGestureRecogniz
我在 ImageView 中添加了4个UISwipeGestureRecognizer。但是当我向右滑动时,会触发向上UISwipeGestureRecognizer。当我向左滑动时,不会触发UISw
如果我将 UISwipeGestureRecognizer 应用于 View ,则当设备旋转时,滑动方向将按预期工作。但是,如果 UISwipeGestureRecognizer 在 AppDeleg
我如何识别UISwipeGestureRecognizer与 UISwipeGestureRecognizerDirectionUp然后紧接着,无需抬起手指,就识别出 UISwipeGestureRe
在我的 spritekit 游戏中,我试图使 2 个 UISwipeGestureRecognizers 可以同时被识别,但是,我无法这样做。任何帮助将不胜感激,在此先感谢。下面是我的代码... 在
在我的 UiView 中,我有一个名为“container”的 subView,如果用户向上或向下滑动,它应该执行旋转动画。基本上它就像一个轮子,如果用户向下滑动轮子,则向下滑动一定程度,同时向上滑动
我正在尝试创建一个由 UISwipeGestureRecognizer 触发的自定义交互过渡,但状态始终为 UIGestureRecognizerStateEnded,因此我无法使用它来控制动画。 A
在 iOS/Swift 中,UIGestureRecognizer 为 swiping有 location 方法 determine the location where a swipe begin.
我在 SpriteKit、Swift 中有 3 个 SKScenes: 一级 游戏结束 2 级。 在Level 1和Level 2中,我的角色移动是通过以下代码完成的: class Level1: S
我是一名优秀的程序员,十分优秀!