0

ユーザーがサブビューを画面上でドラッグしてサブビューの位置を変更できるようにする必要があります。私はどちらの方法でもそれを行うことが可能であることを知っていますが、一方の方法が好ましいですか?なぜ?

4

2 に答える 2

1

純粋に MVC の概念に基づいて、そのビューを担当するものは、おそらくパン ジェスチャ レコグナイザーを処理する必要があります。少なくとも、私はそうしています。ビュー自体は、移動されていることを気にしたり、認識したりしないでください。

ここで、ズームやスクロールなどの場合、それはビューに関連しているように見えます (たとえば、プロパティをUIScrollView持っていpanGestureRecognizerます)。ただし、この場合、これはビューの機能の一部であるため、ビューがジェスチャ レコグナイザーを制御することは理にかなっています。

一般に、それは通常、意図が何であるか、および誰が意味的にアクションの処理に責任を負うべきかについてです。したがって、あなたの場合、UIPanGestureRecognizerスーパービューに を追加して、独自のサブビューを管理できるようにします。

于 2011-09-21T00:01:53.233 に答える
0

iOS 3.2以降を使用している場合は、UIPanGestureRecognizerを調べてください。

// **** other Code ****
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGesture:)];

panGesture.delegate = self;
[dragView addGestureRecognizer:panGesture];
[panGesture release];
}

- (void)panGesture:(UIPanGestureRecognizer *)gestureRecognizer 
{
    CGPoint location = [gestureRecognizer locationInView:parentView]; // The view the of the drag item is in
    gestureRecognizer.view.center = location;
}

これはすべてメモリから行われますが、次のようにする必要があります

于 2011-09-20T23:52:39.560 に答える