ios - UITapGestureRecognizer 操作中的引用发送者

标签 ios swift uiimageview uitapgesturerecognizer sender

为了做好准备,我有一个 4x5 的 UIImageView 网格,我想在点击时翻转并显示新图像。我想用一个@IBaction 来完成这个任务。我只是在识别点击时引用选定的 UIIMageView 时遇到了一些麻烦。我确信这是非常简单的事情。我现在刚刚开始使用 UITapGestureRecognizer,所以我还不知道所有的细节。这是我尝试使用的@IBAction:

@IBAction func tileTapped(recognizer: UITapGestureRecognizer, _ sender: UIImageView) {
    print("Tile Tapped: \(sender.tag)")
}

无论点击哪个 UIImageView,我的打印语句都会给出以下内容:

Tile Tapped: 0

我的标签设置为引用它们所在的行和列。例如,我的第一行的标签是:

00, 01, 02, 03

我最大的挑战是简单地检索适当的 UIIMageView 的标签。一旦我弄清楚了这一点,我就应该坚定。

提前致谢!

最佳答案

这对于手势识别器来说不是一个有效的函数。有关可能的签名,请参阅 UIGestureRecognizer 的文档。

要访问与手势关联的 View ,请访问手势的 view 属性。

@IBAction func tileTapped(_ recognizer: UITapGestureRecognizer) {
    if let view = recognizer.view as? UIImageView {
        print("Tile Tapped: \(view.tag)")
    }
}

关于ios - UITapGestureRecognizer 操作中的引用发送者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52138458/

相关文章:

ios - Swift 交替 UITableViewCell 渐变颜色

objective-c - 如何管理 iPhone 5 的背景图像?

swift - 在 UIImageView 中显示 Gif 时出错

ios - XCode 没有启用纹理图集生成的选项

xcode - xcode 6.1 中的 UIColor(调用中的额外参数)

ios - 如何让 UIImageView 的边缘捕捉到屏幕( super View )的边缘?

ios - 注释(图像和文本) subview 在保存后更改位置

ios - 如何在 Xcode 中的 CALayer 上方制作按钮或标签?

ios - 为什么 cocoapod 为每个 pod 创建一个虚拟类?

ios - 某些用户无法下载 Apple-app-site-association 文件