2010-08-30 4 views
0

Je télécharge l'exemple IKImageBrowserView nommé "IKImageKit Demo" sur le site officiel d'Apple.IKImageBrowserView Miniature Problème

Mais je trouve un problème.

Par exemple:

Quand j'importer des images à partir du dossier nommé "A", puis-je supprimer une image.

Puis-je importer une autre image (nom même que l'image supprimée), la vignette dans

IKImageBrowser ne changera pas. Comment puis-je résoudre ce problème? Merci!

affichage de la vidéo: http://www.youtube.com/watch?v=f3Jue9wOdUI

Répondre

2

Mise à jour: Wow, ancien poste. On dirait que la documentation a été mise à jour un peu après ma publication; Comme le suggèrent les autres réponses, il semble que vous ayez besoin d'incrémenter le imageVersion de l'image pour mettre à jour une image du cache.


Après avoir réfléchi sur le problème pendant près de trois heures (une fois que je commencé, il était vraiment me casser les pieds, aussi!), Je suis venu à la triste conclusion que c'est un bug dans la façon dont les poignées IKImageKit images. IKImageBrowserView a un cache d'images et de vignettes, et à partir de toutes les données expérimentales que j'ai, je suppose qu'il met en cache ses images en fonction de l'emplacement sur le disque, et non sur les données d'image. , même si les données d'image réelles peuvent changer, recharger le même emplacement de fichier ne mettra pas à jour l'image elle-même. Bien sûr, je peux me tromper complètement - ce qui ne me surprendrait pas, puisqu'il n'y a littéralement aucune documentation sur la question, donc je n'ai que des résultats d'Instruments et de l'application elle-même pour me guider - mais mon conseil est d'ignorer le problème pour l'instant, car il n'y a rien que vous pouvez faire à ce sujet, et éventuellement déposer le bug avec Apple.

Bien sûr, si quelqu'un peut présenter d'autres preuves à ce sujet, faites-le! J'aimerais en savoir plus à ce sujet.
Bonne chance!

+0

Ce n'est pas un bug. Vous devez augmenter la valeur imageVersion de IKImageBrowserItem. –

8

Je suis tombé sur une référence indiquant que le cache interne utilisé par IKImageBrowserView recherche des vignettes par ImageUID. Donc, si vous changez le ImageUID que votre source de données retourne à autre chose que juste le nom du fichier (peut-être le nom du fichier + la taille du fichier), alors il sera traité comme une image différente.

+1

Oui, vous avez raison. Cela résout le problème. Vous devriez obtenir le crédit pour cette réponse! – Ben

3

Vous devriez jeter un oeil à la méthode imageVersion du protocole IKImageBrowserItem. Si vous devez indiquer à IKImageBrowserView qu'un élément a changé d'image, vous pouvez incrémenter imageVersion. Cela forcera la vue à mettre à jour l'image mise en cache.

0

vous devriez vouloir mettre à jour imageVersion ou nommer l'image du chemin. Si vous supprimez l'image avec le nom "1.png" après avoir placé l'image si son nom est "1.png", l'affichage du navigateur d'image affiche l'image précédente, vous devez donc prendre soin de la dénomination de l'image. ou méthode imageVersion.

Questions connexes