Skip to content
PunchScrollView is a iOS ScrollView framework which works like the UITableView
Objective-C Shell Ruby C
Latest commit bb1908c Feb 2, 2015 @tapwork Update
Failed to load latest commit information.
ExampleProject Pod update Feb 2, 2015
ImageExample Pod update Feb 2, 2015
.gitignore added gitignore and clean up May 17, 2012
.travis.yml Updates travis Nov 22, 2014
Gemfile Adds travis Nov 21, 2014
LICENSE Updated podspec and Readme, Added LICENSE file Jul 3, 2014
PunchScrollView.h Using ARC now Jul 3, 2014
PunchScrollView.m 64 bit safer Nov 21, 2014
Rakefile Uses iOS 8.1 Nov 24, 2014


Build Status Cocoapods Version CocoaPods Platform

PunchScrollView is a little UIScrollView subclass for iOS which works like UICollectionView or UITableView Frameworks.

Easy and fast implementation: delegate, dataSource methods and getter are similar to the UITableView. Use the benefits of the NSIndexPath pattern like you already know it from UITableView or UICollectionView. This allows an easy setup in combination with Core Data.

  • Helpful methods, i.e. jump or scroll to a desired page
  • Avoid boilerplate code
  • Save lots of memory with automatic dequeuing
  • Comes with an Example project to demonstrate the usage
  • Infinite scrolling

Example setup in the ViewController

self.scrollView = [[PunchScrollView alloc] init];
self.scrollView.delegate = self;
self.scrollView.dataSource = self;
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:self.scrollView];

#pragma mark - PunchScrollViewDataSource

- (NSInteger)numberOfSectionsInPunchScrollView:(PunchScrollView *)scrollView
    return 3;

- (NSInteger)punchscrollView:(PunchScrollView *)scrollView numberOfPagesInSection:(NSInteger)section
    return 3;

- (UIView*)punchScrollView:(PunchScrollView*)scrollView viewForPageAtIndexPath:(NSIndexPath *)indexPath
    ExamplePageView *page = (ExamplePageView*)[scrollView dequeueRecycledPage];
    if (page == nil)
      // You could also use PunchScrollview as gallery scrollview - just change the size of the desired view
        page = [[ExamplePageView alloc] initWithFrame:self.view.bounds];
        page.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

    page.titleLabel.text = [NSString stringWithFormat:@"Page %@ in section %@", @(indexPath.row), @(indexPath.section)];

    return page;


  • Right now there is an issue when turning to landscape since iOS 8 with infinite scrolling (only in rare cases). Layouting is not right for the visible page.
Something went wrong with that request. Please try again.