UITapGestureRecognizer操作中的引用发件人

问题描述 投票:0回答:1

为了设置舞台,我有一个4x5网格的UIImageViews,我想翻转并显示一个新的图像。我想用一个@IBaction完成这个。当识别出水龙头时,我只是在引用选定的UIIMageView时遇到了一些麻烦。我确信这很简单。我刚刚开始使用UITapGestureRecognizer,所以我还不知道所有的细节。这是我想要使用的@IBAction:

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

无论UIImageView被点击,我的print语句都给了我以下内容:

Tile Tapped:0

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

00, 01, 02, 03

我最大的挑战是只需检索相应UIIMageView的标记。一旦我明白了,我应该坚强。

提前致谢!

ios swift uiimageview uitapgesturerecognizer sender
1个回答
0
投票

这不是手势识别器的有效功能。有关可能的签名,请参阅UIGestureRecognizer的文档。

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

@IBAction func tileTapped(_ recognizer: UITapGestureRecognizer) {
    if let view = recognizer.view as? UIImageView {
        print("Tile Tapped: \(view.tag)")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.