iPhoneのタッチイベントで画像を呼び出す方法
-
26-10-2019 - |
質問
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;
}
}
所属していません StackOverflow