I generate my Views in my View Controller like this now:
-(void) generateCardViews {
int positionsLeftInRow = _CARDS_PER_ROW;
int j = 0; // j = ROWNUMBER (j = 0) = ROW1, (j = 1) = ROW2...
for (int i = 0; i < [self.gameModel.cards count]; i++) {
NSInteger value = ((CardModel *)self.gameModel.cards[i]).value;
CGFloat x = (i % _CARDS_PER_ROW) * 121 + (i % _CARDS_PER_ROW) * 40 + 45;
if (j % 2) {
x += 80; // set additional indent (horizontal displacement)
}
CGFloat y = j * 85 + j * 40 + 158;
CGRect frame = CGRectMake(x, y, 125, 125);
CardView *cv = [[CardView alloc] initWithFrame:frame andPosition:i andValue:value];
I get my Data for _CARDS_PER_ROW from a previous VC.
But now i want to leave some places empty.
Now i can generate for example:
* * *
* * *
* * *
But i want to generate something like this:
* * *
* *
* * *
but i don't know how i can skip some places for my views...
EDIT:
- (void)viewDidLoad {
[super viewDidLoad];
level1GameViewController *gvc = [self.storyboard instantiateViewControllerWithIdentifier:@"level1GameViewController"];
gvc.CARDS_PER_ROW = 3;
//gvc.gameStateData = gameStateData;
[self presentViewController:gvc animated:NO completion:nil];
}
This is what im passing from previous controller
EDIT:
* * * *
* * * *
* * * *
* * * * * *
* * * *
* * * * * *
* * * *
* *
* *
all this arrangements i need for example
First of all, let's put the frame calculation into a separate method:
Now, let's specify the card distribution with a mask block, which we send as a parameter:
}
Called as
To generate (assuming
_CARDS_PER_ROW
is6
)