2012-05-04 5 views
1

小さなiPhoneアプリケーションを作成しました。私はUITableViewを入れ、いくつかのUIViewをセルの中に入れます。セル内のビューを水平方向に移動する機能を追加しました。 UIViewで指を上下に動かすと、UITableView全体を垂直に移動するロジックを追加したいと考えています。これは私のコードです:UITableViewを垂直方向に移動するには

-(void)moveView:(UIPanGestureRecognizer *)recognizer 
{ 

    if([recognizer state] == UIGestureRecognizerStateBegan) 
    { 
     CGPoint location = [recognizer locationInView:[self superview]]; 
     prevPos = location; 
     startPosition = self.frame.origin.x; 

    } 
    else if([recognizer state] == UIGestureRecognizerStateChanged) 
    { 
     CGPoint location = [recognizer locationInView:[self superview]]; 
     float delX = location.x - prevPos.x; 
     float delY = location.y - prevPos.y; 
     if(delX > 0 && delX * delX > delY * delY) 
     { 
      CGPoint np = CGPointMake(self.frame.origin.x+delX, self.frame.origin.y); 
      CGRect fr = self.frame; 
      fr.origin = np; 
      self.frame = fr; 
      prevPos = location; 
     } 
     else if(delX * delX < delY * delY) 
     { 

     } 
    } 
    else if([recognizer state] == UIGestureRecognizerStateEnded || 
      [recognizer state] == UIGestureRecognizerStateFailed || 
      [recognizer state] == UIGestureRecognizerStateCancelled) 
    { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.5]; 

     CGRect rect = self.frame; 
     rect.origin.x = startPosition; 
     self.frame = rect; 
     startPosition = 0; 
     [UIView commitAnimations]; 
    } 
} 

この条件にはどのようなコードを入力しますか:else if(delX * delX < delY * delY)

ありがとうございます!

答えて

1

TableViewをスクロールする場合は、TableViewのcontentOffsetプロパティを変更する必要があります。あなたの答えのためのsetContentOffset:animated:ドキュメント

+0

おかげで

見て!それは動作しますが、tableViewの標準的な動作ではありません。 UITableViewにコントロールを渡すことは可能ですか? – Radislav

+0

なぜtableViewを自分でスクロールしたいですか? tableView自体がスクロールしていませんか?なぜそうならないのでしょうか? – Lefteris

+0

私はどのようにそれを英語で説明するのか分かりません。私がいつものようにテーブルビューをスクロールすると、動作します。私は指でscroolのテーブルビューをしようとしているが、UIのTableViewで指を指している場合。このビューには、スタンダードテーブルビューのスクロールを防止するジェスチャ認識機能があります。指が上下に動くとテーブルビューにコントロールを渡す必要があります。 – Radislav

関連する問題