2009-11-17 6 views
6

Vous savez que dans beaucoup d'applications Mac/iPhone (comme votre Finder), lorsque vous faites glisser une icône, toutes les autres icônes seront "repoussées" de votre souris et laissez de l'espace pour l'icône que vous faites glisser.Mise en page automatique "force repel" dans Cocoa

Je me demande si c'est une fonction Cocoa intégrée (dans les contraintes de disposition, etc.?). Sinon, existe-t-il une bibliothèque ou des documents sur la façon de l'implémenter?

Répondre

6

Si vous voulez l'obtenir plus ou moins gratuitement, utilisez un NSCollectionView.

Si NSCollectionView ne correspond pas à vos besoins, il est assez facile de l'implémenter avec NSAnimation. Fondamentalement, la façon dont NSToolbar ou NSCollectionView le fait (par exemple), est de déterminer où l'icône que vous glissez atterrirait si vous le laissez aller, et il envoie les autres icônes à leurs nouveaux emplacements en utilisant Core Animation pour les déplacer doucement.

+0

oui mais comment calculer où déplacer chaque icône? et que se passe-t-il si dans cette position, est déjà une autre icône? –

Questions connexes