質問

2つのImageViewsがあるアプリケーションを作成し、画像ビューに画像を追加しました。画像をクリックすると、画像が選択され、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に保存しますが、セキメージをクリックすると、エステルフ部分に入りません。ループから出てきます。問題になりましょう。この問題を解決するのに役立ちます。ありがとう

役に立ちましたか?

解決

次の変更は問題を解決する必要があります。

- (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)

コードを少しクリーンアップすることもできます。これがこれらの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;
        }
    }
    else if(CGRectContainsPoint(secImage.frame, location))
    { 
        if(select==2)
        {
            vars=2;
        }
        select=0; 
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top