2012-01-12 15 views
0

アイテムのドロップエリアがあるとしようとしていますが、アイテムが間違ったエリアに落ちると元の位置に戻ります。ここ 目的C:ドロップエリア

は私のコードです:午前、
UITouch *touch =[[event allTouches] anyObject]; 
    CGPoint dropPoint = CGPointMake(60, 520); 
    location = [touch locationInView:self.view]; 


if([touch view]==image1 && CGPointEqualToPoint(location, dropPoint)){ 
    [image1 setFrame:CGRectMake(60, 520, 150, 184)]; 
    return; 
} else 
{ 
    [dad setFrame:CGRectMake(530, 225, 150, 184)]; 
} 

は、私は私のミスは、私がドロップエリアのためにするCGPointを使用したことだと思うし、それがコマンドを実行する場合、私は前に宣言したその時点で正確に位置する必要がありますそう?

今私は助けを事前に...それを修正する方法を

感謝を知りません! :)

答えて

0

CGPointはCGFloatsを取り入れています(これは、場所が非常に正確でなければならないと私はほとんどのユーザーが作れるとは思わないことを意味します)、私の最高の推測はdropPointの問題です。一つの解決策は、CGRectを使用して、ドロップエリアを作成し、使用して比較することです:

CGRectContainsPoint(dropRect, location); 

比較することを注意:二つのポインタが同じオブジェクト(を指す場合

[touch view] == image1 

も限りtrueを返しますUITouchesのviewプロパティは、現在のビューではなく元のビューを返します)。

+0

ありがとうございます!それは働いている! :)) – SeongHo

0

このライン

[touch view]==image1 

は、彼らが指し示す先のポインタではないオブジェクトを比較します。これはあなたの問題かもしれません。簡単な解決策はUIViewtagプロパティを使用して、現在どの画像がtouchの場合はviewであるかを把握することです。