私は知っていませんどのように私のアプリで次のタイプの機能を取得する。上図のユーザに示すようにiPhone:以下のように、UIImage/UIButtonをドラッグまたは移動するにはどうすればよいですか?
(ドラッグ)は、異なる画像部分と、ユーザが画像を組み立てることができるスライドさせることができます。
いずれのコントロールがこれを制御するか教えてください。またはそれのための任意のチュートリアル?
私は知っていませんどのように私のアプリで次のタイプの機能を取得する。上図のユーザに示すようにiPhone:以下のように、UIImage/UIButtonをドラッグまたは移動するにはどうすればよいですか?
(ドラッグ)は、異なる画像部分と、ユーザが画像を組み立てることができるスライドさせることができます。
いずれのコントロールがこれを制御するか教えてください。またはそれのための任意のチュートリアル?
チェックアウトMoveMeサンプルアプリすることができます。それはタッチしてドラッグすることによってサブビューの動きを許可する方法を示します。
次に、移動できるパズルピースごとにimageViewsを作成できます。
これを達成したら、ピースの動きの際に、それがピザの正しい場所に近づくのを確認して、ユーザーがそのピースを離れるときにスナップできるようにする必要があります。
http://developer.apple.com/library/ios/#samplecode/MoveMe/Introduction/Intro.html
+1は、アプリの可能性を最大限に引き出すためのものです。 MoveMeは、質問を読むときに私が最初に思った考えでした。 – Till
これは、実行する実装の種類によって異なります。 それはUIImageView、UIbuttonなど あなたは簡単にビューを移動しUIGestureRecognizerを実装できる可能性がありUIIMageViewの利点..
これは容易ではありません。イメージビューの移動方法については、まずコードを記述する必要があります。 Appleの参考文献には多くのサンプルがあります。次に、これを行うために各画像の境界線を取得する必要があります。周りのUIImageViewsをドラッグするため
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
:私はタッチ機能を使用し、私が構築されたアプリケーションのための
すごいよ!あなたは[email protected]で私にサンプルを送ることができますか? – iPhone
。次に、CGRectContainsRectまたはCGRectContainsPointを使用して、パズルピースが適切な場所にあるかどうかを検出できます。次のようにこの問題の
私の最初の攻撃は、次のようになります。
(1)サブクラスUIImageViewは、パズルの各部分を保持します。
(2)UIImageViewサブクラスをUIPanGestureRecognizerで初期化してカスタマイズします。何かのように:
self.panRecognizer =
[[UIPanGestureRecognizer alloc]
initWithTarget: self
action: @selector(handlePan:)];
[self addGestureRecognizer:
self.panRecognizer];
(3)、パンジェスチャ認識装置に関連付けられたアクションの方法でパズルピースのパンジェスチャ認識装置からのメッセージに基づいて、オブジェクトの位置を更新します。以下のようなものがうまく動作するはずです:
-(void) handlePan:
(UIGestureRecognizer *)sender
{
UIPanGestureRecognizer *panRecognizer =
(UIPanGestureRecognizer *)sender;
if (panRecognizer.state ==
UIGestureRecognizerStateBegan ||
panRecognizer.state ==
UIGestureRecognizerStateChanged)
{
CGPoint currentPoint =
self.center;
CGPoint translation =
[panRecognizer translationInView:
self.superView];
self.center = CGPointMake
(currentPoint.x + translation.x,
currentPoint.y + translation.y);
[panRecognizer setTranslation: CGPointZero
inView: self.superView];
}
}
ここでは、UIImageViewであるimgTestを移動するコードを示します。テストされ、魅力的なように動作します。
[[self imgTest]setUserInteractionEnabled:YES];
//Save the first touch point
CGPoint firstTouchPoint;
//xd,yd destance between imge center and my touch center
float xd;
float yd;
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* bTouch = [touches anyObject];
if ([bTouch.view isEqual:[self imgTest]]) {
firstTouchPoint = [bTouch locationInView:[self view]];
xd = firstTouchPoint.x - [[bTouch view]center].x;
yd = firstTouchPoint.y - [[bTouch view]center].y;
}
}
{
UITouch* mTouch = [touches anyObject];
if (mTouch.view == [self imgTest]) {
CGPoint cp = [mTouch locationInView:[self view]];
[[mTouch view]setCenter:CGPointMake(cp.x-xd, cp.y-yd)];
}
}
私は、これはcocos2d、ないのUIKitなどのライブラリーのための、より適しものです考えています。 –
@リチャードJ。RossII:coocs2dの詳細を教えてください。またはリンク? – iPhone
http://cocos2d-iphone.org –