iPhoto'11に似たNSCollectionViewを作成したいと思います。複数の写真をセクションにグループ化し、セクションヘッダーも作成したいと思います。特定のセクションのセクションヘッダーは、そのセクションの最後の要素が表示されるまで常に表示されます。あなたは私が何を意味するかを見るために写真を見ることができます。
編集:内容は画像ではないことを追加する必要があります。
前もって感謝します
iPhoto'11に似たNSCollectionViewを作成したいと思います。複数の写真をセクションにグループ化し、セクションヘッダーも作成したいと思います。特定のセクションのセクションヘッダーは、そのセクションの最後の要素が表示されるまで常に表示されます。あなたは私が何を意味するかを見るために写真を見ることができます。
編集:内容は画像ではないことを追加する必要があります。
前もって感謝します
おそらく、CALayers を直接使用する方法を検討する必要があるでしょう。NSCollectionView
CoreAnimation IIRC からその魔法のほとんどを取得します。その一部を複製する必要があるようです。別の方法として、ネストされたコレクション ビューを使用することもできます。1 つのコレクション ビューにはグループが含まれ、各グループには個々のアイテムの別のコレクション ビューが含まれます。
いずれにせよ、ビュー/レイヤー階層は同じになります。最上位のコンテナには 1 列しかありません (グループは幅全体に広がるため)。その中の各アイテムには、アイテムの幅に基づいて任意の数の列があります。つまり、「グループ」コレクション ビュー アイテムは幅いっぱいに伸びますが、それらのグループ内の個々のアイテムは伸びません。
CALayer
生のアプローチを使用することを選択した場合は、 CAConstraintLayoutManager
. これが内部の魔法を提供するものNSCollectionView
です。これに関する情報を探すには、Pragmatic Programmers にある Bill Dudney の CoreAnimation ブックが最適です。Bill は現在、Apple の公式プラットフォーム エバンジェリストです。
全体として、ネストされたNSCollectionView
アプローチを使用して開始することをお勧めします。パフォーマンスが不足していると思われる場合、または一部の機能を動作させるのに問題がある場合にのみ、未加工の CoreAnimation にドロップダウンすることを検討してください。を使用NSCollectionView
すると、すべての現在の機能を維持できるNSView
ため、作業が軽減されます。問題がなければ、家に帰って乾かします。そうでない場合は、心ゆくまで微調整できる別の方法があります。
同様のサンプルを次に示します。