スーパービューからドラッグできるUIViewを実装しようとしています。
UIPanGestureRecognizer
ドラッグできるようにしたいビューにを追加してみました。ただし、UIViewをスーパービューから削除して別のビューに追加すると、ジェスチャレコグナイザーが機能しなくなるようです。
UIGestureRecognizerStateBegan
コメントアウトされたコードを使用すると、他の2つのブロック内のコードは正しく機能しますが、元に戻すと、UIGestureRecognizerStateChanged状態とUIGestureRecognizerStateEnded状態が実現されません。
何が問題になっていますか?
if ([gr state] == UIGestureRecognizerStateBegan)
{
CGPoint newCenter = [endView convertPoint:[self center]
fromView:startView];
[self removeFromSuperview];
[endView addSubview:self];
[self setCenter:newCenter];
}
if ([gr state] == UIGestureRecognizerStateChanged)
{
// Some code that successfully moves the view.
}
if ([gr state] == UIGestureRecognizerStateEnded)
{
// Other code.
}