听起来很简单.Hold the Trackpad, move the finger, release..但不知何故没有触发滑动(而是触发了平移)

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];

PAN改为由上述序列识别.

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];

如果对平移进行了注释,则通过相同的手势识别卷帘.有了这个,有两个问题:

  • What is the difference then between a pan and a swipe?
  • How can one simulate a swipe on iPhone simulator?

推荐答案

根据定义,滑动手势也必然是平移手势——两者都涉及触点的平移运动.区别在于识别器的语义:平移识别器寻找平移运动的开始,并持续报告随时间在任何方向上的运动,而滑动识别器则即时决定用户的touch 是否在所需方向上线性移动.

默认情况下,没有两个识别器会识别相同的手势,因此平移和滑动之间存在冲突.最有可能的情况是,您的pan识别器"赢得"冲突,因为它的手势更简单/更一般:滑动是pan,但pan可能不是滑动,因此pan首先识别,并排除其他识别器.

您应该能够使用委托方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:来解决此冲突,或者通过使PAN识别器依赖于具有requireGestureRecognizerToFail:的滑动识别器而无需委托.

冲突解决后,您应该能够通过快速拖动鼠标来模拟单手指滑动.(尽管鼠标比手指更精确,但它比在设备上做真实的事情更挑剔.)按住选项&;移动键.

Ios相关问答推荐

通过在SWIFT中不起作用的泛型传递协议一致性类型

在iOS中禁用URLSession自动重试机制

在带有可编码的SWIFT5中,可以轻松处理以美元符号开头的JSON密钥,例如$DATE";

如何在iOS中以编程方式推送另一个页面?

XcodeCloud生成失败,返回";ci_pre_xcodeBuild.sh是可执行文件,但退出时返回2个退出代码.";

如何删除NavigationView中的默认透明标头?

swiftui动画如何实时确定不对称过渡

仅更改 AttributedString 的字符串(例如 UIButton 配置 attributeTitle)

在左侧显示多行值时会出现 SwiftUI 错误,这会 destruct 堆栈中右侧的对齐方式

使用 JSONDecoder 解码的对象的打印输出有问题

使用 SceneKit 从 CapturedRoom.walls 重新创建 RoomPlan

SwiftUI withAnimation 在视图出现之前不会启动

iOS SwiftUI - 从以前的 struct 调用函数

在 UICollectionView 上从右到左对齐

Got Unrecognized selector -replacementObjectForKeyedArchiver: 在 Swift 中实现 NSCoding 时崩溃

如何使用 sendAsynchronousRequest:queue:completionHandler:

使用导航控制器在prepareForSegue中设置数据

是否可以在 iOS 9 上让您的 iPad 应用退出多任务处理?

如何在 Swift 中将新单元格插入 UITableView

是否可以将 Socket.io 与 AWS Lambda 一起使用?