IOS Core Animation-Objekte sind nicht frei

Mache ich eine image-gallery-Anwendung in IOS, wo Benutzer können durchsuchen Sie die Galerie-Bilder. Ich verwendet eine Auslagerungsdatei aktiviert UIScrollView wie in diese Beispiel-code. Alles funktioniert. Aber das problem ist, während ich durch die Seiten Blättern, die Anzahl der core-animation-Objekte erstellt werden und diese nie Abrufe.


|Graph---|Category------------------|Live Bytes---|#Living----|#Transient

|1-------|All Heap & Anonymous VM   |58.69 MB-----|270335-----|828951   
|0-------|All Heap Allocations------|15.30 MB-----|269980-----|826939   
|0-------|All Anonymous VM----------|43.39 MB-----|355--------|2012     
|0-------|VM: CoreAnimation---------|27.01 MB-----|222--------|58  
|0-------|VM: CG image--------------|7.40 MB------|3----------|189      
|0-------|VM: UITextFieldLabel------|4.30 MB------|25---------|0

mithilfe von Instrumenten, die ich beobachtet habe, dass für jeden paging-4-6 Objekte erstellt werden. Aber Sie sind nicht folden, auch wenn ich Links die View Controller

Ich habe versucht, das entfernen der Animationen aus den Schichten mit der folgenden Methode nach jedem paging. aber es funktioniert nicht.

 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{

CGFloat pageHeight = CGRectGetHeight(self.ImageSlider.frame);
NSUInteger page = floor((self.ImageSlider.contentOffset.y - pageHeight / 2) / pageHeight) + 1;
currentPage = page;
delegate.currentPage = page;
[delegate refreshTags];

[self unloadPageFromScrollView:currentPage-2];
[self unloadPageFromScrollView:currentPage+2];

[self loadScrollViewWithPage:currentPage - 1];
[self loadScrollViewWithPage:currentPage];
[self loadScrollViewWithPage:currentPage + 1];

}

- (void)unloadPageFromScrollView:(NSUInteger)page
{
    @autoreleasepool {
        if (page > docList.count-1) {
            return;
        }

    if ((NSNull *)[self.viewControllers objectAtIndex:page] != [NSNull null]) {
        PageViewController1 *controller = [self.viewControllers objectAtIndex:page];
        for (CALayer* layer in [self.view.layer sublayers]) {
                [layer removeAllAnimations];
        }
        [controller.view removeFromSuperview];

        [self.viewControllers replaceObjectAtIndex:page withObject:[NSNull null]];

        }
    }

}

Bitte helfen Sie mir, wenn jemand weiß, wie man die core-animation-Objekte.

  • Jungs, sieht aus wie die core-animation-Objekte sind nicht das Ergebnis eines paging-oder UIpageView. Innerhalb einer Seite, die ich in Bewegung bin einige UILabels, um Sie zu positionieren. Das ist, wo die animation stattfindet. Aber diese Animationen sind nicht frei, wenn ich entladen von der Seite. Ich poste die Antwort, Wenn ich könnte Sie loslassen.
Schreibe einen Kommentar