SKScene 中的 UIPanGestureRecognizer

2023-11-25

我一直在尝试UIGestureRecognizers和新的SKScene/SKNode's in SpriteKit。我遇到了一个问题,我即将解决它,但我对一件事感到困惑。本质上,我有一个平移手势识别器,允许用户在屏幕上拖动精灵。

我遇到的唯一问题是,需要轻轻一按才能实际初始化平移手势,然后只有在第二次轻按时才能正常工作。我认为这是因为我的平移手势是在touchesBegan。然而,自从在 SKScene 中初始化它之后,我不知道还能把它放在哪里initWithSize方法阻止了手势识别器的实际工作。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    if (!self.pan) {

        self.pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(dragPlayer:)];
        self.pan.minimumNumberOfTouches = 1;
        self.pan.delegate = self;
        [self.view addGestureRecognizer:self.pan];
    }
}

-(void)dragPlayer: (UIPanGestureRecognizer *)gesture {

        CGPoint trans = [gesture translationInView:self.view];

        SKAction *moveAction =  [SKAction moveByX:trans.x y:-trans.y  duration:0];
        [self.player runAction:move];

        [gesture setTranslation:CGPointMake(0, 0) inView:self.view];
    }

这是因为您要在触摸开始时添加手势,因此只有在屏幕至少被点击一次后,该手势才会存在。此外,我会验证您是否确实使用 initWithSize: 作为初始化程序,因为在那里添加手势应该不会有任何问题。

另一种选择是将代码移动到添加手势-[SKScene didMovetoView:]场景呈现后立即调用。更多信息在文档中.

- (void)didMoveToView:(SKView *)view
{
    [super didMoveToView:view];
    // add gesture here!
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKScene 中的 UIPanGestureRecognizer 的相关文章

  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • iOS 确定视频中的帧数

    如果我有一个 Swift 中的 MPMoviePlayerController MPMoviePlayerController mp MPMoviePlayerController contentURL url 有没有办法获取视频中的帧数u
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • UIScrollView 与 UITabBarController 切断

    我有一个 UIScrollView 我将其放置在视图中 界面生成器文档 xib m h 但是 UIScrollView 的下半部分被剪切 并且由于我有一个 UITabBarController 而没有显示其下半部分 我在 appdelega
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • 如何从第二个视图弹回到根视图?

    我使用 2 将 3 个视图 根视图 第 1 个视图 第 2 个视图 连接在一起modal在 Apple Watch 故事板中继续 1 在根视图中 按下 保存 按钮后 将显示第一个模态视图 2 在第一模态视图中 一旦按下 500 按钮 将显示
  • Objective-C 点表示法与类方法?

    请注意 我特别指的是点表示法与类方法一起使用 而不是与实例方法一起使用 出于好奇 我想看看如果我尝试在类方法中使用 Objective C 点表示法语法会发生什么 我的实验如下 import

随机推荐

  • Android 中 Activity 的服务回调

    我有一个正在运行的后台服务和一个与该服务交互的客户端 当客户端请求某些操作时 服务会执行该操作并将结果发送回活动 客户端 我知道如何调用活动中的服务方法 并使用回调我们可以实现我想要做的事情 但我无法理解Api demos remotese
  • 为什么Android模拟器的编号是5554

    这可能是一个完全开箱即用的问题 我只是想知道为什么Android模拟器的编号是5554 5556这样的 Android 模拟器使用网络与 Android SDK 工具进行通信 即使此通信仅限于本地主机 这允许安装应用程序 调试等 当您启动模
  • 以编程方式检索 Google Sheets 单元格边框样式

    有可能set the 范围边框样式和颜色 现在的问题是 我们怎样才能get以编程方式设置边框样式 我正在寻找类似的东西 var ss SpreadsheetApp getActiveSpreadsheet var sheet ss getS
  • Node.js 在断开连接事件时不发送套接字

    当有人连接到节点服务器时 我会保留一个包含所有套接字的数组 这样我就可以在需要时向每个人广播消息 或者循环用户来计算在线用户的数量等 所有这些工作正常 但是当触发断开连接事件时 我在参数中没有收到套接字 还有另一种方法可以知道哪个套接字刚刚
  • CSS 相当于 Photoshop 的 Justify-All

    我想采用 h2 元素并将其文本跨越其 div 的宽度 text align justify 仅当文本的宽度大于其容器的宽度时才展开文本 有点像 Photoshop 的 justify left CSS h2 text align justi
  • Swing,如何正确更新UI

    在 Swing 上进行一些操作后更新 UI 的正确方法是什么 例如 单击按钮后 调用的方法可能几乎是即时的 也可能需要几秒钟的时间 事实上 所有应用程序逻辑都是通过 Web 服务远程完成的 因此等待应用程序响应一段时间是正常的 我的按钮事件
  • opencv中的“InputArray”和“Mat”是否相同?

    例如 在文档中有 void cv absdiff InputArray src1 InputArray src2 OutputArray dst 是不是等同于 void cv absdiff Mat src1 Mat src2 Mat ds
  • C99 预处理器图灵完整吗?

    发现后增强预处理器的能力我发现自己在想 C99 预处理器图灵完整吗 如果没有的话 缺少什么才没有资格呢 宏不会直接递归扩展 但我们可以通过一些方法来解决这个问题 在预处理器中执行递归的最简单方法是使用延迟表达式 延迟表达式是需要更多扫描才能
  • Gradle 根据构建风格交换 jniLibs 资源

    我正在尝试交换一些资源res raw文件夹和jniLibs armeabi文件夹基于是否是release buildType or a debug buildType 我目前也有两种产品口味 build gradle 文件 apply pl
  • 如何在android中创建弯曲的底部边框矩形?

    如何使用 xml 创建具有完美弧形底部的 Android 可绘制对象 如下所示 我已经尝试过这个xml 但结果并不完美
  • 排斥网络边缘的文本

    在绘制网络时 如果节点的标签也能避开网络边缘就好了 例如 在下面的示例中 可以将所有标签移到网络之外 我已经尝试了几个软件包 但到目前为止还没有找到一种简单的方法来做到这一点 有办法吗 下面的例子 library ggraph librar
  • mybatis 生成器“列名模式不能为 NULL 或空”

    我在 eclipse 中使用 MyBatis Generator 这是generatorConfig xml 文件 当我右键单击并选择 生成 MyBatis 工件 时 它会显示错误消息 例如 列名称模式不能为 NULL 或空
  • 数据库连接字符串信息

    在 Net中是否有一个类 您可以在其中获取数据库名称和所有连接字符串信息 而无需在连接字符串上实际执行子字符串 EDIT 我没有创建连接 而是尝试从连接字符串中获取信息 所以我基本上是在寻找需要连接字符串 arg 并具有 dbName 连接
  • 是否有一个本机功能可以将基于字符串的 JSON 转换为 Mongoose Schema 对象实例?

    我正在使用 Express 我正在寻找一种便捷的方法来转换此类对象 应要求提供 req body myObject name Foo someNumber 23 someBoolean on 进入此架构的一个实例 var myObjectS
  • 密码学与散列法

    我的问题很简单 加密将信息隐藏到只有想要查看该信息的人才能真正看到它的程度 您可以加密信息然后解密 如果哈希无法解密 为什么会被视为加密 我说散列被视为加密 因为您将 MD5 称为加密散列函数 正确 散列是一种单向函数 但散列不被视为加密
  • 使用 jquery 检查 HTML5 视频是否正在播放

    我编写了一个小的 jquery 代码来覆盖 HTML 5 播放功能 但是 我无法检查视频是否正在播放 这是我的 jquery 代码 video click function var video myvideo get 0 video pla
  • 如何获取嵌套属性

    我想检索 PropertyInfo 这里是代码 string propertyName Text PropertyInfo pi control GetType GetProperty propertyName 它工作正常 但如果我想检索嵌
  • 如何使用 .shp 将空间多边形应用于传单地图

    我正在尝试使用传单绘制加利福尼亚州各县的地图 我没有收到任何错误 但地图没有产生正确的结果 我找到了一个 shp县线文件位于https data ca gov dataset ca geographic boundaries 我导入了 sh
  • 使用 django-allauth

    我在使用 django allauth 时遇到问题 我收到这个错误 NoReverseMatch 位于 accounts login 找不到参数 和关键字参数 的 facebook channel 的反向操作 到目前为止 我已经严格遵循了一
  • SKScene 中的 UIPanGestureRecognizer

    我一直在尝试UIGestureRecognizers和新的SKScene SKNode s in SpriteKit 我遇到了一个问题 我即将解决它 但我对一件事感到困惑 本质上 我有一个平移手势识别器 允许用户在屏幕上拖动精灵 我遇到的唯