我们如何检查imageview中的哪个图像被调用

时间:2011-04-27 10:06:11

标签: iphone objective-c sqlite

我有两个带有图像的图像视图。我希望​​当我点击第一张图像时,图像应该被选中,如果它被选中,它应该返回值TRUE或1应该保存在sqlite数据库中。如何这是可能的。请任何人帮助我解决这个问题。 感谢

5 个答案:

答案 0 :(得分:1)

通过使用UITouch类方法,您将获得触摸的图像视图..或者您可以将imageview放在按钮内,然后您将获得点击事件。

答案 1 :(得分:0)

你使用触摸事件。抓住触摸点并执行你的动作。在这里,我将给你一个样本结构来做到这一点,

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [[event allTouches] anyObject];

    CGPoint location= [touch locationInView:self.view];

    if(CGRectContainsPoint(firstImage.frame, location)) {
        //set some flag like
        selectionFlag=1;        }
    else if(CGRectContainsPoint(secImage.frame, location)){
        selectionFlag=2;        }
    }

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

        UITouch  *touch = [[event allTouches] anyObject]; 
        CGPoint location = [touch locationInView:self.view];

        if(CGRectContainsPoint(firstImage.frame, location)) {   
            if(selectionflag==1) {
                //do ur db actions              }
        }
        else if(CGRectContainsPoint(secImage.frame, location))  {       
            if(selectionflag==2) {
            //do ur db actions                }
        }
        selectionflag=0; 
    }

答案 2 :(得分:0)

首先做

[self.*yourimageViewname* setUserEnteractionEnabled:YES];
BOOL select1,secelect2;
select1=NO;
select2=NO;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {

 UITouch *touch=[touches anyObject];
 CGPoint touchLocation = [touch locationInView:touch.view];
//give the beginning and ending x and y points in condition to check which imageView is taped

 if(touchLocation.x>1 && touchLocation.x<116 && touchLocation.y>133 && touchLocation.y<233)
 {
select1=YES;
}
else if(touchLocation.x>120 && touchLocation.x<300 && touchLocation.y>133 && touchLocation.y<233)
 {
select2=YES;
} 
}

 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
 {
  }

在boolean变量为true的条件下,您可以保存或者您想要进一步编写应用程序的任何内容。

答案 3 :(得分:0)

使用触摸是一种方式,如下面的答案中所述。如果您只有两个imageview,您还可以尝试在该imageview上方放置两个自定义透明按钮,因此您可以根据为按钮提供的标记轻松了解触摸的图像。

答案 4 :(得分:0)

您还可以创建具有图像的两个按钮(而不是UIImageViews)。它们应该显示大致相同(甚至可以禁用触摸状态等)。并且您可以免费获得UIResponder事件(例如;您可以将操作定位到选择器)。

更新:这里大概是如何(虽然没有打扰配置按钮)。

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setImage:yourImage forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];

// .. now create a second button .. //

触摸后,您的按钮将转到以下方法:

- (void)buttonTouched:(id)sender
{
   // .. add your stuff to your database .. //
   // .. you can identify your button by sender, or give the button a tag (number) to identify it .. /
}