dans mon application Je veux avoir une table lumineuse pour trier les photos. Fondamentalement, c'est juste une vue énorme avec beaucoup de photos et vous pouvez faire glisser les photos. Les photos peuvent se chevaucher, elles ne tombent pas dans une grille comme dans iPhoto.Aide sur Cocoa: les objets en tant que vues?
Chaque photo doit donc répondre aux événements de la souris. Est-ce que je fais chaque photo dans sa propre vue? Ou les vues sont-elles trop chères à créer? Je veux facilement supporter plus de 100 photos ou plus.
Photos doivent être en couches, si bien que je peux changer l'ordre d'empilement. Est-ce que j'utilise CoreAnimation pour cela?
Je ne ai pas besoin du code source fini juste quelques pointeurs et des idées générales. Je vais (essayer de) comprendre la mise en œuvre moi-même.
FWIW, je cible 10.5+, j'utilise Obj-C 2.0 et la collecte des déchets.
Merci d'avance!
Donc, en utilisant NSImageViews chaque photo serait sa propre vue. J'ai lu quelque part que la création de nombreuses vues serait coûteuse (sur RAM et processeur), est-ce vrai? Je suppose que je devrais sous-échantillonner les photos afin qu'elles utilisent une quantité raisonnable de mémoire, n'est-ce pas? Enfin, les CALayers peuvent-ils répondre aux événements de la souris? Ou pourrais-je mettre chaque NSImageView sur son propre CALayer? Merci pour votre aide !! – Ron
Vous pouvez utiliser CALayers comme une vue.Ils existent dans une hiérarchie et ils répondent aux hits (bien que le travail de grognement pour les gérer comme une vue soit plus étendu par rapport à une vue.) CALayers ne vous épargnera pas beaucoup de mémoire si vous les utilisez pour afficher les images complètes. . Lorsque vous avez un fichier 2meg, la proportion de la surcharge mémoire entre une vue et une couche est triviale. CALayers prennent moins de temps de processeur. – TechZen
En outre, comme je l'ai dit, vous avez seulement besoin de créer l'illusion des photos fullblown et seulement dans les photos qui sont les plus actifs et les plus en avant. Ceux en arrière-plan peuvent être réduits en taille et en résolution. Vous devriez probablement réfléchir aux données exactes à afficher, puis tester la solution qui fonctionne le mieux. J'imagine que vous avez reçu une amende pour que CALayers fonctionne le mieux en arrière-plan et que les vues fonctionnent mieux au premier plan. Mélanger et assortir. – TechZen