我正在开发一种需要uiimageviews的纸牌游戏。我有一个基于视图的应用程序。我在其中添加了5imageviews。
每张imageview都有一张独特的卡片。用户可以将卡片拖到存在的任何其他卡片的顶部。为此,我需要知道选择了哪张卡。这该怎么做?
触摸启用适用于我视图中的所有位置。我希望只在uiimageview上启用触摸功能。
如何激活我的viewcontroller中单独存在的图像视图的触摸。
提前感谢..
答案 0 :(得分:1)
你可以做的是touchesBegan:你可以使用
检查视图中哪个位置的方法CGPoint point = [recognizer locationInView:self];
然后执行for循环以检查选择了哪个imageview
for(i = 0; i < 5; i++)
{
if(CGRectContainsPoint(imageView.frame, point))
{
// do something.
}
}
答案 1 :(得分:1)
UITouch *touch = [touches anyObject];
CGPoint offSetPoint = [touch locationInView:myImageView];
现在你只定义了myImageView对象来接收触摸。将这些行写成touchesBegan或touchesEnded方法,因为你需要...希望这有帮助....不要忘记将imageview的userInteractionEnabled属性设置为YES,以使触摸工作。
答案 2 :(得分:1)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint pnt = [[touches anyObject]locationInView:self.view];
UIImageView *imgView;
if((pnt.x > CGRectGetMinX(imgView.frame) && pnt.x < CGRectGetMaxX(imgView.frame))&&
(pnt.y > CGRectGetMinY(imgView.frame) && pnt.y < CGRectGetMaxY(imgView.frame)) &&
ChkOfferCount==TRUE)
{
UIAlertView *obj = [[UIAlertView alloc]initWithTitle:@"Image Touched"
message:@"Selected image is this" delegate:nil
cancelButtonTitle:@"cancel"
otherButtonTitles:@"ok",nil];
[obj show];
[obj release];
}
}
答案 3 :(得分:0)
设置imageView.userInteractionEnabled=YES;
,您可以使用imageView本身的touches方法,例如touchesBegan:
您可以使用这些方法来处理卡片的拖放。
答案 4 :(得分:0)
您还可以创建UIControl视图,然后使用UIImageView完全填充它,然后只需在UIControl中捕获触摸事件。