Как вызвать изображение на сенсорном событии в 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; 
    }
}
Другие вопросы по тегам