uiimageview触及问题

时间:2011-09-12 10:05:38

标签: iphone objective-c ipad touches

我正在开发一种需要uiimageviews的纸牌游戏。我有一个基于视图的应用程序。我在其中添加了5imageviews。

每张imageview都有一张独特的卡片。用户可以将卡片拖到存在的任何其他卡片的顶部。为此,我需要知道选择了哪张卡。这该怎么做?

触摸启用适用于我视图中的所有位置。我希望只在uiimageview上启用触摸功能。

如何激活我的viewcontroller中单独存在的图像视图的触摸。

提前感谢..

5 个答案:

答案 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中捕获触摸事件。