Important facts about commercial licenses

  • Licenses are perpetual. They do not expire and do not need to be renewed.
  • Licenses can be upgraded. You can upgrade to a more expensive license later paying only the difference in cost.
  • Pay attention to the distribution type - Hosted (sites / servers), binary (applications) or source (includes all the others). Choose according to your needs (more below).
  • All licenses allow commercial use unless otherwise indicated.
  • Read the full license by clicking on the icon.
  • Read more about licenses in our handy license guide.
Free

1 x Application License

1 application Binary restricted distribution No modifications 6 months support
$49

5 x Application License

5 applications Binary restricted distribution 6 months support
$169

Developer License (OEM)

Unlimited projects Source and binary distribution 1 year support
You need to log-in or create an account
  • Create an account
  • Log-in
  • Please use your real name.
  • Account activation link will be sent to this address.
  • Minimum 8 characters

Clicking this button confirms you read and agreed to the terms of use and privacy policy.

Vertical / Horizontal Scrolling DataGrid for iOS

Vertical / Horizontal Scrolling DataGrid for iOS
Developed by Exairo Ltd., Released Aug 22, 2012

Horizontally and vertically scrollable DataGrid for iOS (iPhone / iPad / iPod support) with ability to reorder columns via user interaction. Supports custom headers/cells. Handles big datasets maintaining low memory consumption and fast speed.

Objective-C

Tags: data grid , datagrid , grid , ios

Display grid based data on the iPad, iPhone and iPod Touch devices. Usage is simple and is similar to usage of UITableView which most developers know well.

Unlike the iPad, the iPhone and the iPod have smaller screens - this component has a combination of two great features to help with the smaller form factor: horizontal scrolling and columns dragging.

The user will be able to easily arrange columns so that the most important data is shown in first 2-3 columns which are usually visible even on the iPhone.

alt text

Features:

  • Supports vertical and horizontal scrolling
  • Reordering of columns via user interaction
  • Custom column headers
  • Custom cells
  • Column headers remains on top when you vertically scroll data
  • Variable column width and row height
  • Compatible with iPhone/iPod touch and iPad
  • Supports iOS 4 and higher
  • Supports ARC
  • Low memory consumption
Back to top

Getting Started

  1. Extract files from zip archive.
  2. Open your project.
  3. In project tree right-click at your project root. Choose Add Files to your project. Select EXDataGridFramework folder. Select "Copy items into destination group folders" option and choose "Create group for any added folders".
  4. If you are using ARC – go to the project properties and choose Build Phases - Compiled sources. Add -fno-objc-arc to each .m file of DataGrid.
  5. Import “EXDataGrid.h” to your view controller.
  6. Create instance of EXDataGrid class in your loadView: 
 see Initialization section;
  7. Implement at least all required methods from DataGridDelegate protocol: see Delegate implementation section.
Back to top

Initialization

EXDataGrid dataGrid = [[EXDataGrid alloc] init];
dataGrid.frame = frame; 
dataGrid.dataGridDelegate = self; //set delegate
[self.view addSubview:dataGrid]; //and add data grid as subview
[dataGrid release]; 
Back to top

Implementing methods of delegate

//define number of columns in data grid
- (int)numberOfColumnsInDataGrid:(EXDataGrid*)dataGrid;
{
    return [dataSource count];
}
//define number of rows in each column
- (int)numberOfRowsInDataGrid:(EXDataGrid *)dataGrid
{
    return [[dataSource lastObject] count];
}
//If you want to set different height for different rows 
- (float)dataGrid:(EXDataGrid *)dataGrid heightOfRow:(int)rowNumber
{
    if(rowNumber == 0) {
      return 40;
    } else if (rowNumber == 1) {
      return 50;
    } else {
      return 60;
    }
}

//You can set different width for different columns
(float)dataGrid:(EXDataGrid *)dataGrid widthOfColumn:(int)columnNumber {
    if(columnNumber == 0) {
        return 100;
    } else if (columnNumber == 1) {
        return 110;
    } else {
        return 120;
    }
}
//Customize cell appearance. Inherit you cell from EXDataGridCell class.
- (EXDataGridCell*)dataGrid:(EXDataGrid *)dataGrid cellForColumn:(int)columnNumber row:(int)rowNumber
{
//obtain existing cell
    EXDataGridCell *cell = (EXDataGridCell*)[dataGrid  cellDequeueReusableIdentifier:identifier              forColumn:columnNumber];
    if(!cell)  {
        cell = [[[EXDataGridCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
    }
    //set data to the each cell
    NSArray *columnData = [dataSource objectAtIndex:columnNumber];
    [cell.textLabel setText:[columnData objectAtIndex:rowNumber]];
    return cell;
}
Back to top

Tips:

  • If your data source was changed, call reloadData / reloadColumn / reloadRow depending on what has changed.
  • To drag a column, hold your finger on a header of that column. After short time columns becomes more transparent and you can move it into another location. To select a column, press header of that column.

User Reviews

No reviews have been submitted yet.
Read all 8 comments »

Questions & Comments


Or enter your name and Email
  • Julio Fernandez Valenzuela 1 week ago
    It is really strange that someone tries to put a price on the work of others ... Based on what?

    Please, don't it permit it
    • Kiryl Lishynski Developer 1 week ago
      Hi Julio. This component is written from scratch by us. What do you mean?
    • Julio Fernandez Valenzuela 1 week ago
      That you DO NOT let anyone put price to YOU work (Steven Pham said: Nice work. But this price is so expensive).

      Many people are getting used and to require all free; and how they will live the ones doing the work?
    • Kiryl Lishynski Developer 6 days ago
      I still do not understand your point. We put the price for our work by ourselves. No one puts price to our work except us.
  • Ashwinikumar Jha 4 months ago
    Hi, I used your code. Good work.
    But when I tried using more than one datagrid on one view controller then it was giving some unexpected results like in numberOfRows method, first datagrid was returning value for second datagrid whereas second datagrid was returning value 0 as number of rows.
    Please help.
    • Kiryl Lishynski Developer 4 months ago
      Hi Ashwinikumar,

      Although you didn't purchase the component, can you send an email to ios@exairo.com with the explanation of a problem and example source code? I'll look into your problem then.

      Thank you.
  • Steven Pham 9 months ago
    Nice work. But this price is so expensive.
    • Kiryl Lishynski Developer 9 months ago
      Hi Steven,

      Thanks for feedback, we appreciate it. What price for such component seems reasonable to you?
You must be logged-in to vote. Log-in to your account or register now.