2011-04-28 88 views
0

我已经创建了一个应用程序,其中有2个imageviews,我已经添加图像view.i wnt,当我点击我的图像图像应该选择和值应该保存在sqlite数据库中。为此,我创建了触摸方法,并为这两个图像添加了标志,因此当选择特定图像时,它将通过其标志进行标识。 这是我的代码:如何调用iphone上的图像触摸事件

-(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 
     select=1;   
    } 
    else if(CGRectContainsPoint(secImage.frame, location)) 
    { 
     select=2;   
    } 
    [mComment resignFirstResponder]; 

}   

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

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


    if(CGRectContainsPoint(firstImage.frame, location)) { 
     if(select==1) { 

      var=1; 
     } 
     else if(CGRectContainsPoint(secImage.frame, location)) { 

      if(select==2) { 
       vars=2; 
      } 
      select=0; 
     } 
    } 
} 

,但我有一个问题,当我选择我的第一个图像是正常进入的,如果部分并存储值1到VAR 1,但是当我点击secimage它不进入elseif部分,它只是从循环出来。可能是什么问题。请帮我解决这个问题。谢谢

回答

0

以下变化应该可以解决问题:

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

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


    if(CGRectContainsPoint(firstImage.frame, location)) { 
     if(select==1) { 

      var=1; 
     }} 
    if(CGRectContainsPoint(secImage.frame, location)) { 

     if(select==2) { 
      vars=2; 
     }} 
    select=0; 
} 

你上面的代码是不工作,因为if(CGRectContainsPoint(firstImage.frame, location) == YES,它永远不会到达行if(CGRectContainsPoint(secImage.frame, location)

的代码也可能是清理了一下。不知道这是实施这两种方法的理想方式,但它可以工作。

+0

嗨朋友我尝试这个,但同样的事情发生 – user692277 2011-04-28 11:25:19

+0

对不起朋友它正常工作谢谢 – user692277 2011-04-28 11:32:31

+0

很高兴它解决了 – 2011-04-28 11:35:47

0

可能是你的代码有错误?试试这个

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

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

    if(CGRectContainsPoint(firstImage.frame, location)) { 
     if(select==1) 
     { 
      var=1; 
     } 
    } 
    else if(CGRectContainsPoint(secImage.frame, location)) 
    { 
     if(select==2) 
     { 
      vars=2; 
     } 
     select=0; 
    } 
}