2012-10-30 5 views
1

J'ai utilisé un UIPageViewController je veux afficher les 24 pages et chaque page n'est pas un texte de son image dans le contrôleur contentView im en utilisant ce codeUIPageViewController avec des images plantage de l'application

self.imgView.image=nil; 
self.imgView.image= [UIImage imageNamed:[NSString stringWithFormat:@"image%d.jpg",index+1]]; 

if(self.categoryId==3 ||self.categoryId==4) 
{ 
    self.imgView.contentMode=UIViewContentModeScaleToFill; 
} 
else 
{ 
    self.imgView.contentMode=UIViewContentModeScaleAspectFit; 
} 

mais le problème est quand je lance l'application et tourner les pages après 17 ou 18 page, il me donne un avertissement de mémoire et mon get app écrasé

+0

Comment répondez-vous à l'avertissement de la mémoire? Libérez-vous réellement la mémoire qui est invisible. Il n'est pas nécessaire de conserver plus de 3 pages en mémoire à la fois. C'est la page qui est actuellement visible et les deux à côté. Donc 16, 17 et 18 quand 17 est actuellement visible. Tout le reste peut être libéré (et créé à nouveau lorsque l'utilisateur fait défiler/pages vers lui). –

+0

Je suis juste en train de régler l'image en mode image. pouvez-vous s'il vous plaît expliquer comment puis-je supprimer d'autres pages? et comment libérer la mémoire invisible? Merci – deve1

Répondre

1

Vous pouvez essayer d'utiliser la:

NSString* imgFile = [NSString stringWithFormat:@"image%d",index+1]; 
NSString* pathToImageFile = [[NSBundle mainBundle] pathForResource:imgFile ofType:@"jpg"]; 
self.imgView.image = [UIImage imageWithContentsOfFile:pathToImageFile]; 

En effet, imageNamed met en cache toutes les images que vous chargez à travers elle. Le cache devient de plus en plus important et empêche la libération de la mémoire de manière appropriée.

+0

Merci. Cela fonctionne, mais après avoir terminé la navigation 3-4 fois l'application se écrasé – deve1

Questions connexes