2011-10-21 19 views
0

私の窓には、3つのビューがあり、バックグラウンドではメインのものが1つ、フロントでは2つ前のものがあります。タッチイベントでビューの位置を移動/再配置する方法は?

各ビューの先頭にはいくつかのコンテンツが含まれていますが、私はタッチ時にビューの一部として移動したいと考えています。 「移動」とは、「別のビューに相対的な位置を並べ替える」ことを意味します。タッチすると、私は「それのすべてのコンテンツとの見解をピックアップし、現在は別のビューによって占められる位置に置き、」あなたはこのような何かを始めるでしょう

enter image description here

したいのですが?このような

答えて

0

まずあなたがGestureRecognizerを作成する必要があります。

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)]; 
doubleTap.numberOfTapsRequired = 2; 

[self addGestureRecognizer:doubleTap]; 

のいずれかの表示に追加します(または3つすべて)。そのサウンドから、主要な背景が最も理にかなっています。

-(void)doubleTap:(id)sender { 
    view1.frame = view2.frame; 
    [self bringSubviewToFrom:view1]; 
} 

私はまた、すべてのあなたのサブビューのコンテンツはそのautoresizingMaskあなたはサブビューが動作するようにする方法に応じて設定されていることを確認します。その後、あなたの意見の一方が他方がどこに移動になりますダブルタップメソッドを作成します。

1

何か:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UIView *touchedView = [[touches anyObject] view]; 
    CGPoint location = [[touches anyObject] locationInView:touchedView]; 
    touchedView.center = location; 
} 

も参照UIResponder.hでこれらのメソッド:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 
+0

他のビューと比較して画面上のビューをどのように移動しますか?申し訳ありませんが、さらなる例をご提供できますか? – JAM

関連する問題