swift - 如何使 View 响应触摸(而不是点击)

标签 swift xcode

我正在进行单词搜索并有一个字母网格。我希望用户能够用手指划过标签中的一排字母,并让这些字母以某种方式做出响应,以便我可以将选定的字母放入数组中。 我找不到任何方法让字母以这种方式响应触摸。 我尝试记录手指的坐标(touchBegan 等)并用它们来计算字母的位置,但它不精确。 有什么方法可以让网格中的单元格做出响应,以便我可以收集其中保存的信息? 我不想使用点击,因为我觉得用户希望在网格上拖动手指。 我一直在 Collection View 中的标签中保留字母,但现在尝试使用 TextView 网格。

最佳答案

遗憾的是,没有。为了一观。检测触摸信息的唯一方法是重写 touchesMoved 函数。您必须计算位置才能查看用户当前所在的单元格。另请注意,移动手指时会多次触发此功能。所以你也必须防止重复的值。

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let touch = touches.first {
        let currentPoint = touch.location(in: self.view)
        print(currentPoint)
    }
}

关于swift - 如何使 View 响应触摸(而不是点击),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040211/

相关文章:

ios - 在 tableviewCell 中快速实现一个类似的按钮

ios - 编译 Swift 时收到 “Include of non-modular header inside framework module”

ios - Swift 中的透明 UINavigationBar

iphone - 如何在 iPhone 编程中将临时文件的位置更改为高清文件

iphone - 具有大 uint8_t[ ] 数组的 iOS 问题

ios - swift 。正确初始化 UITableViewCell 层次结构

ios - xcodebuild 链接器断言失败

swift - "${PODS_ROOT}/SwiftLint/swiftlint"导致 "Command PhaseScriptExecution failed with a nonzero exit code"与 Xcode 10

ios - 即使应用程序终止,在 iOS 中实现定期位置更新

xcode - 如何调试从 OSX 上的文件打开我的应用程序?