Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fast UIScrollView subclass which presents its cells in a GridView
Pull request Compare This branch is 4 commits behind allaboutapps:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

What is A3GridTableView?

A3GridTableView is a UIScrollView subclass with a high performance GridView style layouting.
It has similar delegate methods to a UITableView and can be even used like one.
The difference is that the A3GridTableView aligns his section in collumns and not in one flow.

It is written in Objective-C and works for all iOS applications.
ARC is not enabled for the project, but you can easily convert it to arc with the XCode built in ARC converter.
If you are too lazy for that, you can still set the -fno-objc-arc flag.


A3GridTableView iPhone sample A3GridTableView iPad sample


Add the QuartzCore Framework and the A3GridTableView directory to your project.
Initialize a A3GridTableView like any other View by code or in the InterfaceBuilder. Set your ViewController as dataSource and delegate of the A3GridTableView and implement the required dataSource methods:

- (NSInteger)numberOfSectionsInA3GridTableView:(A3GridTableView *) gridTableView;
- (NSInteger)A3GridTableView:(A3GridTableView *) tableView numberOfRowsInSection:(NSInteger) section;
- (A3GridTableViewCell *)A3GridTableView:(A3GridTableView *)gridTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

You can find all optional dataSource and delegate methods like heightForRowAtIndexPath: well documented with explanations in the A3GridTableView.h header file.

The dataSource method cellForRowAtIndexPath: requires a A3GridTableViewCell (or a subclass) which properties can also be seen in A3GridTableViewCell.h header file.


See our BSD 3-Clause License


Feel free to fork and make pull requests! We are also very happy if you tell us about your app(s) which use this control.

aaa - AllAboutApps
© allaboutapps 2012

Something went wrong with that request. Please try again.