如何检索用户单击(或触摸)的特定 UIImageView



我的单个视图上有多个UIImageViews。我需要单击一个(例如ImageView1),然后单击视图上的空白区域。第二次单击时,分配给 ImageView1 的图像应显示在此位置,并从第一次单击的位置消失。

示例:下棋时,用户单击女王,然后单击(允许移动)空插槽。女王应该搬到新的地方。类似的方式。

我应该使用TapGestures,UIControl还是UIButton?

我试图使用TapGestures的触摸开始 - 但这只有在我只有一个UIImageView时才有效。[我不关心自动移动,所以我忽略了 touchesMoved]。

当有多个图像视图时,

当用户单击一个图像视图时,我如何知道用户单击了哪个图像?

这里实际上有两个问题:

1 - 实现与 UIViews 的交互时要使用什么?

好吧,答案取决于您希望实现的目标。

如果您想要一个简单的按钮功能(即单击),请使用 UIButton .

如果要自定义控件的功能,请子类UIControl并实现所需的功能。

如果您正在寻找低级黑客,则子类UIView并覆盖相关方法。

2 - 如何检测点击了哪个视图?

有很多方法可以做到这一点。它们将以上述所有方式工作的一种方法是将标识整数分配给 UIView tag 属性,然后在点击视图时查询 tag 属性并将其与您的视图进行比较。

例:

// Somewhere in your initialization code
// ...
[_myTappableView setTag:123];

识别分流器后:

if (tappedView.tag == 123)
{
    NSLog("My Tappable View was tapped!!!");
}

您可以向图像视图添加手势识别器。

我不知道

你以前尝试过什么,但是有一个方法'didselectitematindexpath',你也可以使用点击手势。

最新更新