CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

TAXHeaderSheet 0.3.1

TAXHeaderSheet 0.3.1

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Jan 2015

Maintained by ShinichiKanai.



  • By
  • ShinichiKanai

A spreadsheet view that have header/footer

TAXHeaderSheet_SC_1

Requirements

iOS 6.0 or later

Dependency

TAXSpreadSheet 0.2.0 or later

Installation

via CocoaPods

pod 'TAXHeaderSheet'

Usage

Import header

#import "TAXHeaderSheet.h"

Instantiate TAXHeaderSheet and register UICollectionViewCell or subclass for cells the same as UICollectionView.

TAXHeaderSheet *headerSheet = [[TAXHeaderSheet alloc] initWithFrame:CGRectMake(0.0. 0.0. 100.0, 100.0)];
[headerSheet registerClass:[UICollectionViewCell class] forCellInAllSectionWithReuseIdentifier:@"Cell"];

Set metrics of the sheet via properties.

headerSheet.numberOfRowsOfBody = 30;
headerSheet.numberOfColumnsOfBody = 20;

headerSheet.numberOfRowsOfHeader = 1;
headerSheet.numberOfRowsOfFooter = 2;
headerSheet.numberOfColumnsOfHeader = 1;
headerSheet.numberOfColumnsOfFooter = 1;

headerSheet.sizeForCell = CGSizeMake(50.0, 20.0);
headerSheet.widthOfHeaderCell = 50.0;
headerSheet.widthOfFooterCell = 50.0;
headerSheet.heightOfHeaderCell = 20.0;
headerSheet.heightOfFooterCell = 20.0;

headerSheet.heightOfHeader = headerSheet.heightOfHeaderCell * 
headerSheet.numberOfRowsOfHeader;
headerSheet.heightOfFooter = headerSheet.heightOfFooterCell * headerSheet.numberOfRowsOfFooter;
headerSheet.widthOfHeader = headerSheet.widthOfHeaderCell * headerSheet.numberOfColumnsOfHeader;
headerSheet.widthOfFooter = headerSheet.widthOfFooterCell * headerSheet.numberOfColumnsOfFooter;

or by implementing delegate methods eg. headerSheet:heightAtRow:ofSectionType: There is priority for cell height/width: Header > Footer > Body > Property.

Set DataSource and Delegate objects and implement those methods.

- (UICollectionViewCell*)headerSheet:(TAXHeaderSheet *)headerSheet cellAtRow:(NSUInteger)row column:(NSUInteger)column inSectionType:(TAXHeaderSheetSectionType)sectionType
{
    TAXLabelCell *cell = [headerSheet dequeueReusableCellInSectionType:sectionType withReuseIdentifier:CellIdentifier forRow:row column:column];
    // Customize cell.
    return cell;
}

You should return dequeued UICollectionViewCell subclass in headerSheet:cellAtRow:column:inSectionType

Customize

Use custom views for separators.

You can use custom UICollectionReusableView subclass for separators. You should register class and dequeue view from HeaderSheet. In case of not using view, return nil.

- (UICollectionReusableView *)headerSheet:(TAXHeaderSheet *)headerSheet separatorViewOfSeparatorType:(TAXHeaderSheetSeparatorType)separatorType
{
    UICollectionReusableView *view = [headerSheet dequeueReusableSeparatorViewOfSeparatorType:separatorType withReuseIdentifier:@"Separator"];
    view.backgroundColor = [UIColor blueColor];
    return view;
}

Use custom views for inter-row/column of each section.

You can use custom UICollectionReusableView subclass for inter-row/column by implementing delegate methods. You should register class and dequeue view from SpreadSheet. In case of not using view, return nil.

- (UICollectionReusableView *)headerSheet:(TAXHeaderSheet *)headerSheet interRowViewInSectionType:(TAXHeaderSheetSectionType)sectionType belowRow:(NSUInteger)row;
{
    if (row == 0) {
        UICollectionReusableView *view = [spreadSheet dequeueReusableInterRowViewWithIdentifier:@"View" belowRow:row];
        return view;
    } else {
        return nil;
    }
}

License

MIT License

Change Log

0.2.0

  • [Add] Methods for inserting, moving, deleting rows/columns.
  • [Add] Methods for setting background color/view.

0.3.0

  • [Add] Feature of scrolling in touching any section.
  • [Add] TAXHeaderSheetHorizontal/VerticalSectionType