如何调用iphone上的图像触摸事件
问题描述:
我已经创建了一个应用程序,其中有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部分,它只是从循环出来。可能是什么问题。请帮我解决这个问题。谢谢
答
以下变化应该可以解决问题:
- (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)
的代码也可能是清理了一下。不知道这是实施这两种方法的理想方式,但它可以工作。
答
可能是你的代码有错误?试试这个
- (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;
}
}
嗨朋友我尝试这个,但同样的事情发生 – user692277 2011-04-28 11:25:19
对不起朋友它正常工作谢谢 – user692277 2011-04-28 11:32:31
很高兴它解决了 – 2011-04-28 11:35:47