2012-03-30 8 views
6

私はフライウェイトのアプローチを理解しましたセルベース NSTableViewと私はNSCollectionViewとの違いを理解していると思います。 Differences between (cell-based) NSTableView and NSCollectionViewビューベースのNSTableViewとNSCollectionView?

しかし、ビットあまり明らかビューベース NSTableViewとNSCollectionViewの違いです。

NSCollectionViewは、tableViewのリスト(最大1列のグリッド)をエミュレートし、人物の嗜好を除外したアイテム(グリッドレイアウト)を柔軟に表示できるため、NSCollectionViewよりNSTableViewを選択するのはなぜですか?

+1

NSCollectionViewはCocoaで導入された最も恐ろしいものの1つなので、 (それは私の意見です。) – trudyscousin

+1

私のビューベースのテーブルビューに対するコレクションビューの1つの論点は、コレクションビューをコントローラにバインドするときに、アニメーションの挿入と削除がすぐに行え、動作することです。 – bijan

答えて

9

NSCollectionViewビューリサイクルを使用していません。つまり、ビューが画面上にあるかどうかにかかわらず、単一のコレクションビュー項目ごとにビューが作成されます。これは、大きなデータセットであなたのパフォーマンスを破壊する可能性があります。ビューベースのNSTableViewは、ビューのリサイクルを使用し、すべてのアイテムに対して新しいものを作成するのではなく、限られた数のセルをリサイクルするので、非常に効率的です。 NSCollectionViewは全体的に記述が不適切で、文書化されていないクラスです。

+1

@ indragie:混乱している:appleの文書によると、https://developer.apple.com/library/mac/documentation/AppKit/Reference/NSCollectionViewDataSource_protocol/index.html#//apple_ref/doc/uid/TP40016649-CH1 -SW6、ビューはNSCollectionViewでリサイクルされていますが、そうではありませんか? 'NSCollectionView'はあまり書き込まれていないと同意します。 :) –

+0

OS X 10.10互換アプリケーション用のNSCollectionViewを書いてください。そして、「NSCollectionViewは全体的には書かれていて、文書化されていないクラスです」と投票したいと思います。しかし、OSX10.11のNSCollectionViewは試してみる価値があるかもしれませんが、今より良く見えます。 – Adison

+1

ビューのリサイクルは、El Capitan – Lothar

関連する問題