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)
?
ありがとうございます!
おかげで
見て!それは動作しますが、tableViewの標準的な動作ではありません。 UITableViewにコントロールを渡すことは可能ですか? – Radislav
なぜtableViewを自分でスクロールしたいですか? tableView自体がスクロールしていませんか?なぜそうならないのでしょうか? – Lefteris
私はどのようにそれを英語で説明するのか分かりません。私がいつものようにテーブルビューをスクロールすると、動作します。私は指でscroolのテーブルビューをしようとしているが、UIのTableViewで指を指している場合。このビューには、スタンダードテーブルビューのスクロールを防止するジェスチャ認識機能があります。指が上下に動くとテーブルビューにコントロールを渡す必要があります。 – Radislav