Skip to content

Commit

Permalink
Merge pull request #15 from nunofgs/master
Browse files Browse the repository at this point in the history
Added ability to define number of views per cell
  • Loading branch information
Norsez Orankijanan committed Mar 31, 2014
2 parents 79fab15 + 9f8c058 commit 608aa6f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
19 changes: 14 additions & 5 deletions Classes/BDDynamicGridViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -166,14 +166,23 @@ - (void)reloadData
NSAssert(kMinViewsPerCell <= kMaxViewsPerCell, @"Minimum number of views per row cannot be greater than maximum number of views per row.");

while (accumNumOfViews < self.delegate.numberOfViews) {
NSUInteger numOfViews = (arc4random() % kMaxViewsPerCell) + kMinViewsPerCell;
if (numOfViews > kMaxViewsPerCell) {
numOfViews = kMaxViewsPerCell;
}
numOfViews = (accumNumOfViews+numOfViews <= self.delegate.numberOfViews)?numOfViews:(self.delegate.numberOfViews-accumNumOfViews);
NSUInteger numOfViews = 0;

ri = [BDRowInfo new];
ri.order = _rowInfos.count;
ri.accumulatedViews = accumNumOfViews;

if ([self.delegate respondsToSelector:@selector(numberOfViewsPerCell:)]) {
numOfViews = [self.delegate numberOfViewsPerCell:ri];
} else {
numOfViews = (arc4random() % kMaxViewsPerCell) + kMinViewsPerCell;

if (numOfViews > kMaxViewsPerCell) {
numOfViews = kMaxViewsPerCell;
}
numOfViews = (accumNumOfViews+numOfViews <= self.delegate.numberOfViews)?numOfViews:(self.delegate.numberOfViews-accumNumOfViews);
}

ri.viewsPerCell = numOfViews;
accumNumOfViews = accumNumOfViews + numOfViews;
_rowInfos = [_rowInfos arrayByAddingObject:ri];
Expand Down
5 changes: 5 additions & 0 deletions Classes/BDDynamicGridViewDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@
*/
- (void) gridViewDidEndScrolling;

/**
This method is called to determine the number of views in a cell.
@param rowInfo the row being calculated.
*/
- (NSUInteger)numberOfViewsPerCell:(BDRowInfo*)rowInfo;

/**
This method is called to determine the height of the specified row.
Expand Down

0 comments on commit 608aa6f

Please sign in to comment.