- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
层次结构:
present(GameVC, animated: true, completion: nil)
let vc = self.storyboard?.instantiateViewController(withIdentifier: "GameVC") as! GameVC
self.present(vc, animated: true, completion: nil)
GameVC
有 GameView
(UIView
的子类),涵盖整个 VC GameView
的初始化程序 ,我有这个代码来配置滑动手势:
let leftGesture = UISwipeGestureRecognizer(target: self, action: #selector(leftSwipe))
leftGesture.direction = .left
self.addGestureRecognizer(leftGesture)
let rightGesture = UISwipeGestureRecognizer(target: self, action: #selector(rightSwipe))
rightGesture.direction = .right
self.addGestureRecognizer(rightGesture)
let downGesture = UISwipeGestureRecognizer(target: self, action: #selector(downSwipe))
downGesture.direction = .down
self.addGestureRecognizer(downGesture)
@objc func downSwipe() {
//code
}
@objc func leftSwipe() {
//code
}
@objc func rightSwipe() {
//code
}
GameVC
正在显示的初始 VC(通过将 Storyboard 箭头拖到
GameVC
上),
手势按预期工作。 这让我觉得调用
present()
可能弄乱了手势操作的层次结构,但我不太确定。
最佳答案
您必须表明您的手势可以通过提供相应的委托(delegate)方法来同时处理。
下面的演示代码使用上面的工作。使用 Xcode 11.4/iOS 13.4 测试
class GameView: UIView {
}
// in Storyboard just empty view of above custom GameView
class GameVC: UIViewController, UIGestureRecognizerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let leftGesture = UISwipeGestureRecognizer(target: self, action: #selector(leftSwipe))
leftGesture.direction = .left
leftGesture.delegate = self
self.view.addGestureRecognizer(leftGesture)
let rightGesture = UISwipeGestureRecognizer(target: self, action: #selector(rightSwipe))
rightGesture.direction = .right
rightGesture.delegate = self
self.view.addGestureRecognizer(rightGesture)
let downGesture = UISwipeGestureRecognizer(target: self, action: #selector(downSwipe))
downGesture.direction = .down
downGesture.delegate = self
self.view.addGestureRecognizer(downGesture)
}
// allows own view gestures to run with system originated simultaneously
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
true
}
@objc func downSwipe() {
print(">> down swipe")
}
@objc func leftSwipe() {
print(">> left swipe")
}
@objc func rightSwipe() {
print(">> right swipe")
}
}
// Initial VC, in storyboard contains only button linked to below showGame action
class ViewController: UIViewController {
@IBAction func showGame(_ sender: Any) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "GameVC") as! GameVC
self.present(vc, animated: true, completion: nil)
}
}
关于ios - UISwipeGestureRecognizer 不适用于呈现的 VC 和 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61175403/
我有这个代码: 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
我是一名优秀的程序员,十分优秀!