2016-05-16 8 views
2

を経由して拡大し、私はhorisontal流れにコレクションビューを持って、細胞がsceenと幅の画面/ 4iOSのSWIFT - CollectionView特定のセルをタッチ

としてheighているので、私はあなたが拡大しようとしたときにそうアニメーションの移行のようなものを追加したいですこのセルが2本の指を持つセルは、指がデバイスの側面に達するまで幅が広がり、指が眠っている間に他のものもアニメーションされます。

どのようにして、コレクションビューでvcのfuncを呼び出し、コンポーネントとセルのサイズを操作するためにfinger mooveを追跡できますか?同様に、他の細胞が離れていくように、cvで特定のセル幅を広げていくと、ちょっとしたトリックです。

任意の助けてくれてありがとう))

答えて

0

ので、ダウン票と慈悲深いことが、私はコメントとしてこれを追加するために愛しているだろうが、私はそれを行うには50の評判が必要:P

あなたはUIViewControllerAnimatedTransitioningを使用する必要があります、UIViewControllerTransitioningDelegate、およびUIPercentDrivenInteractiveTransition

あなたはアニメーションの遷移がでNewViewControllerのスクリーンショットを追加する必要がありViewController.view

に対するconvertRectメソッドを使用する必要がありますので、あなたは、ViewControllerをに関してUICollectionViewCellのフレームを使用してアニメーションの移行を行いますconvertRectメソッドの結果を開始フレームとして返します。その後、アニメーションはNewViewControllerの開始フレームから最終フレームまでになります。

アニメーションをテストし、目的の結果があるかどうかを確認します。次に、UIPercentDrivenInteractiveTransitionを に実装し、UIPinchGestureRecognizerに接続します。私はピンチジェスチャーを各セルに追加してから、セルのデリゲートを作成し、UIPercentDrivenInteractiveTransitionをデリゲートとして設定して、関数func userDidUsePinchGesture(gesture: UIPinchGestureRecognizer)を実装することをお勧めします。その関数では、遷移の完了率を計算できます。

この壁紙がちょっと怖いのであればごめんなさい。これがあなたを助けることを願っています。あなたはUIViewControllerAnimatedTransitioningUIViewControllerTransitioningDelegate、およびUIPercentDrivenInteractiveTransitionを実装していない場合は、私はあなたがこのチュートリアルCreating Custom UIViewController Transitions

1

をチェックアウトすることを示唆している前に、2本の指を使ってズームを処理するためにUIPinchGestureRecognizerを使用することができます。ビューのズームスケール値を読み取ることによって、セルの高さと幅を変更し、セルをリロードすることができます。

UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinchWithGestureRecognizer:)]; 
[cell addGestureRecognizer:pinchGestureRecognizer]; 

スウィフト:

var pinchGestureRecognizer: UIPinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: Selector("handlePinchWithGestureRecognizer:")) 
cell.addGestureRecognizer(pinchGestureRecognizer) 

ズームスケール値を読み、ここにあなたの変換のものを書く:

-(void)handlePinchWithGestureRecognizer:(UIPinchGestureRecognizer *)pinchGestureRecognizer{ 
    self.cell.transform = CGAffineTransformScale(self.testView.transform, pinchGestureRecognizer.scale, pinchGestureRecognizer.scale); 
} 

スウィフト:

func handlePinchWithGestureRecognizer(sender: UIPinchGestureRecognizer) 
{ 
    sender.view!.transform = CGAffineTransformScale(sender.view!.transform, 
    sender.scale, sender.scale) 
} 

ます。また、これを参照することができます。 https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html

+0

この方法を試してみると、すべてうまくいくが、唯一のことはフィンガーを捨ててセル側が遠くになる可能性があるということだ。フィンガーの正確な位置を追跡してセル側に設定するワットがある。すべてのデバイスでより鋭敏ですか?私はすべての計算や他のものを行うことができます、私はちょうど画面上の送信者の指の位置のようなものが必要です。とにかくおかげさまで助けてください)))) –

関連する問題