Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6091795
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T12:22:07+00:00 2026-05-23T12:22:07+00:00

This question is in regards to UIView’s -drawRect function. The Set-Up: My app consists

  • 0

This question is in regards to UIView’s -drawRect function.

The Set-Up:
My app consists of multi-page PDF document that can be flipped through via a paging-enabled ScrollView. Each page (PDFDisplayView) is a UIView customized to use Core Graphics CGPDF functionality to draw a specific page of the PDF document. The Scroll View tries to optimize memory by loading the pages that are in view and unloading unused pages. Loading a page initializes a UIViewController that adds its view (PDFDisplayView) to the ScrollView, which calls the -drawRect function of the PDFDisplayView (shown below).

The Mystery:
Adding the view (PDFDisplayView) to its superview (the ScrollView) calls the -drawRect function, and in Instruments Object Allocations visualizer, the memory size grows. The mystery is that, although -drawRect seems to increase memory usage, removing the view from the superview (ScrollView) on unload does not seem to reduce the memory usage, as the visualizer graph keeps going up, not down. The result is that memory usage continues to expand as you use the app, which causes memory warnings and eventual crashing…

Other Info:
I’ve checked all other aspects of my code to make sure I am not leaking memory elsewhere — all seems fine. This led me to suspect drawRect as being the culprit. I’ve included the code below. Please tell me what you think. Thanks.

- (void)drawRect:(CGRect)rect {


 CGPDFPageRef thePageRef = [[PDFReaderAppDelegate sharedAppDelegate] getPageRefForPage:self.currentPage];

    if(thePageRef)
    {

        CGContextRef ctx = UIGraphicsGetCurrentContext();

        CGContextSaveGState(ctx);

        CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);
        CGContextScaleCTM(ctx, 1.0, -1.0);
        CGContextConcatCTM(ctx, 
                           CGPDFPageGetDrawingTransform(thePageRef, kCGPDFCropBox, 
                                                        [self bounds], 0, true));

        CGContextDrawPDFPage(ctx, thePageRef);    
        CGContextRestoreGState(ctx);

        NSLog(@"Drew PDFDisplayView of page %i (-drawRect)", self.currentPage);
    }


}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T12:22:08+00:00Added an answer on May 23, 2026 at 12:22 pm

    The memory malloc’d in your drawRect will persist until you release the document. Periodically releasing and reopening the document is the only way around this that I’ve found.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm pretty sure this is a simple question in regards to formatting but here's
This question would probably apply equally as well to other languages with C-like multi-line
This question is in regards to this blog entry. https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/ All the way at
Disclaimer, I not do anything in particular with regards this question, just curious. Is
I have just asked this question an hour ago but with regards to IE8
I was looking at this question Here in regards to this library. However it
First of all, this question is in regards to PHP and MySQL I have
In regards to my this question , I got this following answer to add
I suppose this question could just as easily be applied to PHP with regard
This question is kind of an add-on to this question In C#, a switch

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.