// check if first page is last page
if (lastVisiblePageIndex != firstVisiblePageIndex) {
// get last visible page
item = [_pages objectAtIndex: lastVisiblePageIndex];
// load if needed
if (item == [NSNull null]) {
[self loadPageAtIndex: lastVisiblePageIndex];
}
There is likely a much better solution:
///////////////////////////////////////////////////////////////////////////////////////////////////
(void) loadBoundaryPagesIfNeeded { id item = nil;
//stop everything from crashing if you try to swipe and you haven't navigated anywhere yet //RM--Fix if ([_pages count] <= 0) { return; }
// calculate first visible page NSInteger firstVisiblePageIndex = [self indexOfFirstVisiblePage]; // get first visible page item = [_pages objectAtIndex: firstVisiblePageIndex];
// load if needed if (item == [NSNull null]) { [self loadPageAtIndex: firstVisiblePageIndex]; }
// calculate visible pages count and last visible page NSInteger visiblePagesCount = [self visiblePagesCount]; NSInteger lastVisiblePageIndex = MIN([_pages count]-1, firstVisiblePageIndex + visiblePagesCount);
// check if first page is last page
if (lastVisiblePageIndex != firstVisiblePageIndex) { // get last visible page item = [_pages objectAtIndex: lastVisiblePageIndex];
} }