как вызвать изображение на сенсорном событии в iphone - PullRequest
0 голосов
/ 28 апреля 2011

Я создал приложение, в котором есть 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 ]

0 голосов
/ 28 апреля 2011

Следующее изменение должно решить проблему:

- (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 голосов
/ 28 апреля 2011

Может быть, ваш код содержит ошибку?Попробуйте это

- (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; 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...