我的单个视图中有多个UIImageViews。我需要单击一个(比如ImageView1),然后单击视图上的空白区域。在第二次单击时,分配给ImageView1的图像应出现在此位置,并从第一次单击的位置消失。
示例:在下棋时,用户点击女王,然后点击(允许的移动)空插槽。女王应该搬到新的地方。类似的方式。
我应该使用TapGestures,UIControl还是UIButton?
我试图使用TapGestures的touchesBegan - 但这只有在我只有一个UIImageView时才有用。 [我不关心自动移动,所以我忽略了touchesMoved]。
当有多个ImageView时,当用户点击ImageView时,我如何知道用户点击了哪个Image?
答案 0 :(得分:2)
这里实际上有两个问题:
嗯,答案取决于你希望实现的目标。
如果您想要一个简单的按钮功能(即单击),请使用UIButton
。
如果您想要定制控件的功能,请继承UIControl
并实现您需要的功能。
如果您正在寻找低级别黑客子类UIView
并覆盖相关方法。
有很多方法可以做到这一点。
以上述所有方式工作的一种方法是将标识整数分配到UIView
tag
属性中,然后在查看视图时查询tag
属性并进行比较它在你看来。
示例:
// Somewhere in your initialization code
// ...
[_myTappableView setTag:123];
识别出点击时:
if (tappedView.tag == 123)
{
NSLog("My Tappable View was tapped!!!");
}
答案 1 :(得分:0)
您可以为图片视图添加手势识别器..
答案 2 :(得分:0)
我不知道您之前尝试了什么,但有一种方法'didselectitematindexpath',您也可以使用点按手势。