2009-11-01 9 views
0

J'ai besoin d'aide pour obtenir des sources de données dans OpenFlow. IAide pour faire fonctionner dataSource sur OpenFlow

Je souhaite fournir la fonctionnalité CoverFlow à chaque fois que le téléphone est tourné horizontalement. J'utilise le code génial d'Alex Fajkowski OpenFlow (http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/) mais l'exemple fourni est très différent de ce dont j'ai besoin. J'utilise OpenFlow dans une vue horizontale à l'intérieur d'un contrôleur de vue Navbar. OpenFlow fonctionne déjà. Je peux faire défiler toutes mes images et fonctionne vraiment bien. Cependant, je l'utilise avec plus de 100 images et il faut un certain temps pour charger au début. En examinant les améliorations de performances, j'ai réalisé que le délégué AFOpenFlowViewDataSource n'était pas appelé. J'ai réussi à faire fonctionner AFOpenFlowViewDelegate en spécifiant le délégué dans la classe de contrôleur de vue "flowView.dataSource = self;". Mais je ne suis pas capable de faire fonctionner le délégué de la source de données. Pas même avec "flowView.viewDelegate = self;".

La source de données est-elle nécessaire? Il semble qu'il soit nécessaire pour l'enfilage du chargement.

Répondre

2

Ok, il semble que ça marche maintenant. Le délégué DataSource n'est appelé que lorsque les objets sont chargés dynamiquement. Ce qui veut dire que si j'utilise "[(AFOpenFlowView *)self.view setImage]" alors dataSOurce n'est jamais appelé car tout ce qu'il sait, les images sont déjà chargées. Toutefois, l'utilisation de "[(AFOpenFlowView *)self.view setNumberOfImages:30];" déclenche le délégué DataSource pour charger les images comme ils sont nécessaires. J'ai trouvé le GetImageOperationNSThread très utile pour mes 100+ images. Cependant, les images ne sont pas déchargées après être sorties de l'écran. Quelqu'un sait comment décharger les images quand elles sortent de l'écran?

+2

Il semble que le problème provient d'un tableau mutable qui se développe à mesure que chaque vue est ajoutée. Ce tableau est parfait pour une petite quantité d'objets mais il devient un cochon de mémoire quand il y a beaucoup d'objets. Je l'ai résolu simplement en commentant la ligne où la ligne de tableau. À l'intérieur de AFOpenFlowView.m, recherchez - (void) setImage: (UIImage *) image forIndex: (int) indexez et commentez les lignes suivantes: // [coverImages setObject: imageWithReflection forKey: coverNumber]; // [coverImageHeights setObject: [NSNumber numberWithFloat: image.size.height] pour la clé: coverNumber]; – user200607

Questions connexes