gpt4 book ai didi

iphone - iOS 的特殊手势

转载 作者:行者123 更新时间:2023-11-28 20:44:52 26 4
gpt4 key购买 nike

我想在我的应用程序中添加特殊手势。

例如,如果用户将在屏幕上滑动 X,我想将其视为删除,或者如果用户将滑动 V - 我想将其视为确认。

我正在考虑对其中一个 UIGesture 类进行子类化,但不确定如何检测我需要什么。

更新:我找到了复选标记手势的示例 (http://conceitedcode.com/2010/09/custom-gesture-recognizers/),但不知道如何实现 X one。

最佳答案

您无法真正识别“X”,那将是 2 个手势。你将不得不做一些手势保护程序来查看前一个是否是对角线笔画,以及这个是否是一个……以及各种疯狂的 Action 。你可以做一些事情,比如斜向下,直线向上,然后斜向下另一个方向。我会把那个代码留给你 :P

但是,您要做的是子类化 UIGestureRecognizer。 Here is some documentation on it .您需要实现以下方法:

- (void)reset;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

这是用于识别“V”手势的代码。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];

if ([self state] == UIGestureRecognizerStateFailed)
return;

CGPoint curr = [[touches anyObject] locationInView:self.view];
CGPoint prev = [[touches anyObject] previousLocationInView:self.view];

if (!strokeUp) {
// upstroke has increasing x value but decreasing y value
if (curr.x >= prev.x && curr.y <= prev.y) {
strokeUp = YES;
} else {
[self state] = UIGestureRecognizerStateFailed;
}
}
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];

if (([self state] == UIGestureRecognizerStatePossible) && strokeUp) {
[self state] = UIGestureRecognizerStateRecognized;
}

}

这应该让你指向正确的方向,祝你好运。

关于iphone - iOS 的特殊手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com