smartsanja
smartsanja

Reputation: 4540

Show PDF on a UIScrollView

I found an example code for showing PDF file on a UIScrollView with horizontal scrolling. It works fine, but problem is it shows only 2 pages of PDF. I tried in my best to figure out the issue, but I couldn't figure it. Can you please give me help?

Upvotes: 0

Views: 1916

Answers (1)

Michael Dautermann
Michael Dautermann

Reputation: 89509

I looked at that sample project you pointed to in this question and like you, I can see it only displays two pages of whatever PDF file it's given to display.

The problem with the sample code comes in the PDFViewController.m file. For these lines:

PDFScrollView *page = [self dequeueRecycledPage];
if (page == nil) {
    page = [[[PDFScrollView alloc] initWithPage:index + 1 frame:[self frameForPageAtIndex:index]] autorelease];
} 

I added

else {
    [page setPage: index inFrame:[self frameForPageAtIndex: index]];
}

And also these new lines into PDFScrollView.h

- (void) setPage: (NSInteger) onPage inFrame:(CGRect)frame;

And PDFScrollView.m

- (void) setPage: (NSInteger) onPage inFrame:(CGRect) frame
{
    if(pdfView)
    {
        [pdfView removeFromSuperview];
        [pdfView release];
    }
    self.frame = frame;
    self.index = onPage;
    pdfView = [[PDFViewTiled alloc] initWithPage:onPage frame:self.frame];
    [self addSubview:pdfView];
}

This isn't a perfect fix. You'll see the drawing isn't proper, especially when backing up pages. I'll leave that to you as an exercise to take care of, but hopefully this is a nice start.

And I hope it helps you out.

Upvotes: 1

Related Questions