これは、UIPanGestureRecognizer
と少数の計算では簡単です。スーパービューのためにあなたのinit
方法に
UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
pan.maximumNumberOfTouches = pan.minimumNumberOfTouches = 1;
[self addGestureRecognizer:pan];
を、およびメソッドを定義:正しいフレーム(私は名前_viewToChange
を使用して、これ以降のビューでそれを置き換えています)にビューを変更するには、単純に追加します。
- (void)pan:(UIPanGestureRecognizer *)aPan; {
CGPoint currentPoint = [aPan locationInView:self];
[UIView animateWithDuration:0.01f
animations:^{
CGRect oldFrame = _viewToChange.frame;
_viewToChange.frame = CGRectMake(oldFrame.origin.x, currentPoint.y, oldFrame.size.width, ([UIScreen mainScreen].bounds.size.height - currentPoint.y));
}];
}
これは、ユーザーの指の動きに合わせてビューをアニメートする必要があります。それが助けてくれることを願って!
私はビューを常にフルハイトにしますが、ビューの内側には高さの変更があるCALayerがあります。 –
どうすればそれをやりますか? – user2397282
ジェスチャー認識機能を見ましたか? – Wain