私はinsertItemsAtIndexPaths
またはmoveItemAtIndexPath:toIndexPath:
のようなものについて話しています。私はアニメーションブロックでそれをラップしようとしましたが、うまくいきませんでした。アニメーションは.25秒または0.3秒で止まっているようですが、これを遅くしたいと思います。誰かがこれが公開APIで可能かどうかを知っていますか?UICollectionViewsのアニメーションの速度を変更する方法はありますか?
答えて
絶対に!しかし、UIView
アニメーションブロックを使用して正しく行うことはできません。あなたはCore Animationを掘り下げる必要があります。
には、それぞれUICollectionViewCell
をサポートするアニメーションが便利に追加されます。しかし、独自のレイアウト(または既存のサブクラス)を実装する場合、finalizeCollectionViewUpdates
メソッドでこれらのアニメーションに必要な変更をすべて行うことができます。
UICollectionViewLayout
クラスのドキュメントから:
コレクションビューは、所定の場所に変更をアニメーション化する前の前の最後のステップとして、このメソッドを呼び出します。ここで
、独自にデフォルトの位置アニメーションを交換する方法の例です:CALayer
上のアニメーション関連のメソッドで
- (void)finalizeCollectionViewUpdates
{
for (UICollectionViewCell *cell in [self.collectionView visibleCells])
{
CAAnimation *positionAnimation = [cell.layer animationForKey:@"position"];
if (positionAnimation)
{
[cell.layer removeAnimationForKey:@"position"];
CALayer *presentationLayer = cell.layer.presentationLayer;
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
[animation setFromValue:[NSValue valueWithCGPoint:presentationLayer.position]];
[animation setToValue:[NSValue valueWithCGPoint:cell.layer.position]];
[animation setDuration:0.4];
[cell.layer addAnimation:animation forKey:@"position"];
}
}
}
ルックあなたはアニメーションが現在実行されているものに掘ることができる方法を確認しますあなたの層に。
このアプローチを使用すると、CAKeyframeAnimation
など考えられるオーバーシュート/バウンスエフェクトを追加できます。また、一部のアニメーション(サイズなど)を選択的に無効にし、他のアニメーション(ポジションなど)を保持するなどの作業を行うこともできます。
ここからこのオーバーのコピー:https://stackoverflow.com/a/18392148/1751266
あなたはCALayerので任意のアニメーションの速度を変更することができます。だから、UICollectionViewのために、これは次のようになります。
[self.collectionView.viewForBaselineLayout.layer setSpeed:0.1f];
そして、あなたは、元の速度戻っ変更することができます。これが機能する
[self.collectionView.viewForBaselineLayout.layer setSpeed:1.0f];
をあなたはQuartzCoreをインポートする必要があります。
#import <QuartzCore/QuartzCore.h>
アニメーション化されたUIImageViewsなどを含む、同じレイヤー上の他のアニメーションにも影響しますので、補正が必要な場合があります。
- 1. UIImageViewアニメーションの速度を変更する
- 2. アニメーション中の速度を変更する
- 3. スウィートアラートJSライブラリ - アニメーションの速度を変更
- 4. ラインスペースの0をより速く変更する方法はありますか?
- 5. 特定の速度で縮尺を変える方法はありますか?
- 6. オブジェクトを速度でキャストする方法はありますか?
- 7. iOSの変更アニメーションの速度をリアルタイムで表示する
- 8. 進行中のCAKeyframeAnimationアニメーションの速度を変更する
- 9. 加速度計の変更でランダムに順序をアニメートする方法はありますか?
- 10. 水のアニメーションと速度を変更する
- 11. Jquery UIアコーディオンのアニメーション速度を変更する
- 12. フレーム内のアニメーションの速度を制御する方法は?
- 13. javascricptゲームでオブジェクトの速度を変更する方法は?
- 14. UIViewアニメーションの速度を制御する方法は?
- 15. ScrollToAsync(Element、ScrollToPosition、Boolean)のアニメーション速度を設定する方法は?
- 16. UIModalTransitionStyleの速度/時間を調整する方法はありますか?
- 17. カメラの速度/速度を変更するには?
- 18. AVPlayerItemの再生速度を迅速に変更する方法は?
- 19. UIScrollViewでユーザー速度のスクロールを知る方法はありますか?
- 20. React Native - onScrollイベントのスクロール速度を変更する方法
- 21. 要素のスクロール速度を変更する方法(視差)
- 22. GIFファイルの速度を変更する方法
- 23. 段ボールの角シフト速度を変更する方法VR
- 24. ビューページのスライド速度を変更する方法
- 25. vimのデフォルトモードを変更する方法はありますか
- 26. Android:MediaPlayerのURLを変更する方法はありますか?
- 27. gccのコンパイルオプションを変更する方法はありますか?
- 28. アプリケーションのデフォルトフォントを変更する方法はありますか
- 29. visualstudiocodeのデフォルトパスを変更する方法はありますか?
- 30. Linuxで3G速度接続を確認する方法はありますか?