我正在编写代码,在视图上向上或向下移动我的两个手指以改变某些状态.代码如下:
UISwipeGestureRecognizer *aSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];
[aSwipeGesture setDirection:UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown];
aSwipeGesture.numberOfTouchesRequired = 2;
[self.View addGestureRecognizer:aSwipeGesture];
- (void)swipeGesture:(UISwipeGestureRecognizer *)sender {
NSLog(@"Swipe received.");
if (sender.direction==UISwipeGestureRecognizerDirectionUp) {
NSLog(@"swipe up");
} else if (sender.direction==UISwipeGestureRecognizerDirectionDown) {
NSLog(@"swipe down");
}
}
Run Code Online (Sandbox Code Playgroud)
然而,我可以收到的唯一打印日志是Swipe收到,如下所示.我无法收到刷卡或向下滑动的消息,我是否遗漏了什么?谢谢
ViewController.m:228 Swipe received.
ViewController.m:228 Swipe received.
ViewController.m:228 Swipe received.
ViewController.m:228 Swipe received.
ViewController.m:228 Swipe received.
ViewController.m:228 Swipe received.
Run Code Online (Sandbox Code Playgroud)
更新:我必须用两根手指才能完成滑动动作.
在viewDidLoad我设置:
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[swipeGesture setDirection:(UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
[self.view addGestureRecognizer:swipeGesture];
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
UISwipeGestureRecognizerDirection temp = recognizer.direction;
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
{
[self backCalendarPressed:nil];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
{
[self nextCalendarPressed:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
但recognizer.direction总是等于' 3'.这就是为什么我无法确定它是向左还是向右滑动.
好吧,我有一些代码向视图添加4个识别器,像这样
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib
for(int d = UISwipeGestureRecognizerDirectionRight; d <= UISwipeGestureRecognizerDirectionDown; d = d*2) {
UISwipeGestureRecognizer *sgr = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
sgr.direction = d;
[self.view addGestureRecognizer:sgr];
}
[self restore];
[self populate];
[self displaymap];
Run Code Online (Sandbox Code Playgroud)
}
和这样的识别器
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer
{
printf("Guesture: %d\n", recognizer.direction);
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
{
printf("a\n");
[self move: 'a'];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
{
printf("d\n");
[self move: 'd'];
}
else if …Run Code Online (Sandbox Code Playgroud) 我使用SWRevealViewController作为侧边栏,我必须使用滑动来处理我的上一个和下一个故事以及侧边栏的边缘平移.
我使用UIScreenEdgePanGestureRecognizer而不是PanGestureRecogniser的原因是因为滑动会导致调用平移手势,导致整个页面变得混乱.我希望有一种方法可以在边缘泛声识别器激活时调用平移手势而不是使用它:
[self.view addGestureRecognizer:[MainViewController sharedInstance].revealViewController.panGestureRecognizer];
[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: left];
[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: right];
Run Code Online (Sandbox Code Playgroud)
我想使用SWRevealVC的委托.如果还有其他方式,请向我建议.
UIScreenEdgePanGestureRecognizer *panLeft = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(_handleRevealGesture:)];
[panLeft setEdges:UIRectEdgeLeft];
panLeft.minimumNumberOfTouches = 1;
panLeft.maximumNumberOfTouches = 1;
[self.view addGestureRecognizer:panLeft];
Run Code Online (Sandbox Code Playgroud)
委托SWRevealVC的方法
// The following methods provide a means to track the evolution of the gesture recognizer.
// The 'location' parameter is the X origin coordinate of the front view as the user drags it
// The 'progress' parameter is a positive value from 0 to 1 indicating the front …Run Code Online (Sandbox Code Playgroud) user-interface ios uiswipegesturerecognizer uipangesturerecognizer swrevealviewcontroller
我有一个包含计数器的视图.
我已经实现了两种不同的手势识别器,
UISwipeGesture将计数增加一,
和一个UIPanGesture,以便每次增加多个数字
用户刷卡的时间.
两种姿势都有效,但我的问题是它们不能同时工作.
我希望他们能够交替工作,例如,如果我做小滑动的话
计数器应该增加1,如果我继续向上拖动计数器
应该增加多个数字.
这是我的代码的一部分:
```
override func viewDidLoad() {
super.viewDidLoad()
setupSwipeGestures()
setupPanGestures()
}
private func setupSwipeGestures() {
let swipeUp = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
let swipeDown = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
swipeUp.direction = .Up
swipeDown.direction = .Down
circleView.addGestureRecognizer(swipeUp)
circleView.addGestureRecognizer(swipeDown)
}
private func setupPanGestures() {
let panGesture = UIPanGestureRecognizer(target: self, action: Selector("handleThePan:"))
circleView.addGestureRecognizer(panGesture)
}
extension UIPanGestureRecognizer {
func isDown(circleView: UIView) -> Bool {
let velocity : CGPoint = velocityInView(circleView)
if velocity.y < 0 {
print("ex …Run Code Online (Sandbox Code Playgroud) uigesturerecognizer ios uiswipegesturerecognizer uipangesturerecognizer swift
我正在使用下面的代码将右/左滑动事件集成到UIImageView对象(称为photo_view),但在iphone模拟器和设备中进行测试后它无效.该方法handleLeftSwipe和handleRightSwipe以下,甚至没有所谓的日志记录没有在调试日志,它应该打印任何东西.这是代码:
- (void)viewDidLoad
{
[super viewDidLoad];
UISwipeGestureRecognizer *leftSwipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftSwipe:)];
leftSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
leftSwipeRecognizer.numberOfTouchesRequired = 1;
[photo_view addGestureRecognizer:leftSwipeRecognizer];
leftSwipeRecognizer.delegate = self;
[leftSwipeRecognizer release];
UISwipeGestureRecognizer *rightSwipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightSwipe:)];
rightSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
rightSwipeRecognizer.numberOfTouchesRequired = 1;
[photo_view addGestureRecognizer:rightSwipeRecognizer];
rightSwipeRecognizer.delegate = self;
[rightSwipeRecognizer release];
}
- (void)handleLeftSwipe:(UISwipeGestureRecognizer *)recognizer
{
NSLog(@"handleLeftSwipe called");
}
- (void)handleRightSwipe:(UISwipeGestureRecognizer *)recognizer
{
NSLog(@"handleRightSwipe called");
}
Run Code Online (Sandbox Code Playgroud)
不知道是什么原因?
提前帮助,
斯特凡
我使用cocos2d创建了一个项目,现在我想使用UISwipeGestureRecognizer来获取上/下/左/右,所以我该怎么办?非常感谢
我在IB中有一个UISwipeGestureRecognizer设置链接到我的视图,如下所示:

非常微不足道,完成了一百万次.但是这次它永远不会激发>:|
这是我的方法,应该在用户滑动时调用.

然而,这永远不会被称为.
我有另一个视图设置几乎完全相同,这工作正常.有任何想法吗?
objective-c interface-builder uiview uigesturerecognizer uiswipegesturerecognizer
我试图将Swipe Gesture Recognizer添加到我的应用程序中,这样我可以向左或向右滑动以进入另一个视图控制器.我将对象拖动到我想要的viewcontroller,将其链接起来,所以当向右滑动时它应该带我到另一个viewcontroller.我运行模拟器,但滑动功能不会将我带到另一个视图.
在创建一个新项目时,只需添加3个viewcontroller和滑动手势,我可以在模拟器中滑动它,它将我带到另一个viewcontroller.但在我当前的应用程序中做同样的事情并没有做任何事情.
有任何想法吗?我试着玩启用/禁用状态,但仍然没有得到任何结果
我有一个页面,从数据库中检索数据,以显示有关当前信息或之前或之后的信息
就这样
if Status = 1 it shows the current
Status = 2 it shows previous
Status = 0 it shows next
Run Code Online (Sandbox Code Playgroud)
我到目前为止所做的是显示当前数据并且它完美地显示我需要做一个功能,当用户从右向左滑动显示下一个和从左到右显示之前
任何想法或指南只是从哪里开始
谢谢
ios ×8
iphone ×3
objective-c ×3
swift ×2
ios4 ×1
ipad ×1
swipe ×1
uiimageview ×1
uiview ×1
xcode ×1