Как вызвать изображение на сенсорном событии в iphone
Я создал приложение, в котором есть 2 изображения, и добавил изображение в представление изображения. Я хочу, чтобы при нажатии на мое изображение изображение выбиралось, а значение сохранялось в базе данных sqlite. Для этого я создал касается метода и добавляет флаги для обоих изображений, чтобы при выборе конкретного изображения оно идентифицировалось по его флагу. это мой код:
-(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;
}
}
}
Но у меня возникла проблема: когда я выбираю свое первое изображение, оно правильно попадает в часть if и сохраняет значение 1 в var 1, но когда я нажимаю secimage, оно не входит в другую часть, оно просто выходит из цикла. быть проблема. Пожалуйста, помогите мне в решении этой проблемы. Спасибо
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(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;
}
}