J'ai un UIImage que je veux afficher avec TTPhotoViewController, mais TTPhotoViewController ne prend pas UIImage comme argument. Il prend un TTPhoto comme un argument, donc je me demande s'il y a un moyen de convertir un UIImage en TTPhoto ou s'il y a un autre moyen d'obtenir le TTPhotoViewController pour afficher mon UIImage autre que la définition de defaultImage, qui n'a pas t travail trop bien.Comment obtenir TTPhotoViewController pour afficher un UIImage?
Répondre
Vous devez créer un objet conforme au protocole TTPhotoSource
, en implémentant les méthodes requises. Vous devez ensuite remplir cette source de données avec des objets conformes au protocole TTPhoto
.
Vous devriez alors pouvoir définir la propriété de source de photo sur le TTPhotoViewController et la magie de Three20 devrait fonctionner. Dans ma propre expérience, j'ai seulement utilisé ce cadre avec des URL pour les images et les télécharger en utilisant le framework TTModel
de Three20. Je ne suis pas entièrement sûr de savoir comment cela affecte le chargement des images localement.
J'utilise un petit hack pour le faire:
NSString *url = [[TTURLCache sharedCache] createUniqueTemporaryURL];
[[TTURLCache sharedCache] storeImage:baseImage forURL:url force:YES];
PEPhotoViewController *album=[[[PEPhotoViewController alloc] initWithImageURL:url] autorelease];
Je dois essayer ceci avant que je puisse l'accepter comme réponse, mais cela ressemble à un bon hack. –
Vous pouvez donner chemin d'accès local à la bibliothèque. Devrait être bandle://
ou documents://
. Jetez un oeil à la source d'exemple TTCatalog.
'bundle: //' *. +1 pour 'documents: //', c'est exactement ce dont j'avais besoin – ColdLogic
Réglez simplement self.defaultImage sur votre image. Ça devrait marcher.
J'ai en quelque sorte ajouté Three20 au projet parce que je voulais un bon PhotoViewer. Toutes les images sont stockées localement. Aussi, je veux juste afficher une image, au moins pour l'instant. –
Vous ne pouvez pas vraiment échapper à la façon de faire de Three20. C'est juste la façon dont c'est écrit. Si vous voulez utiliser la visionneuse de photos, vous devez créer une source de photos et la peupler. Si vous voulez juste montrer quelques images dans une vue de défilement, je suggère de regarder dans la documentation de UIScrollView et des exemples d'applications et de cuisiner votre propre navigateur de photos plus simple. Three20 dans son ensemble est un monstre, et en plus de son refactor en cours, il est encore assez difficile à appréhender. – Jasarien
J'ai posé cette question depuis longtemps et je n'ai même plus accès au code source, mais je pense que c'est ce que j'ai fini par faire, donc je suppose que je devrais accepter cela comme ma réponse. –