UIKitDynamics を使用して弾力性のある collectionViewLayout を実装する方法について、非常に多くのチュートリアルや議論があることを私は知っています。
iOS7 Messages アプリで「メッセージ バブル」を複製するという正確なトピックに対処する WWDC 13 セッション ビデオさえあります。
セッション ビデオに従って、このチュートリアルを使用して独自の「跳ねるレイアウト」を作成しました。このチュートリアルでは、タイリング メカニズムの実装に関する詳細も説明されています。これにより、何千ものセルでもスムーズに動作することが保証されます。
ただし、結果は依然としてメッセージ アプリで確認できるものとは大きく異なります。私の目標は、メッセージ アプリとまったく同じ動作を再現することでした。
UIAttachmentBehavior
プロパティ (長さ、減衰、周波数) に いくつの異なる値を指定しても、バウンスを正しく行うことができません。
セッション ビデオでは、セルが実際の位置に戻らないため、長さの値を 0 より大きく設定すると問題が発生することが示されています。ただし、長さを ~0.5 に設定することで、メッセージ アプリが示す滑らかで高速な減速しか再現できませんでした。- collectionView が境界の端に達すると、Messages アプリの最後の数個のバブルに誇張されたバウンスが発生しますが、私の「チュートリアルの実装」はまったくバウンスしません。
開発者フォーラムで議論があります: Apple Dev Forums Discussion
セルごとに複数の UIAttachmentBehaviors を使用することを提案する人もいれば、UIView を適用すると言う人もいます - spring Animations は、この望ましい効果を与えることができます。Messages アプリが UIKitDynamics + UICollectionView をまったく使用しないという仮定さえあります。(私は、Apple がそのためにこの明白なテクニックを使用していないことを疑います)
私の質問: メッセージ バブル動作の正確な複製を正常に実装した人はいますか? このトピックに関する回答を得るために、他に何ができますか?