1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [self doLayoutForOrientation:toInterfaceOrientation]; }
- (void)doLayoutForOrientation:(UIInterfaceOrientation)orientation { if (UIInterfaceOrientationIsPortrait(orientation)) { [self layoutPortrait]; } else { [self layoutLandscape]; } }
static const CGFloat buttonHeight = 40; static const CGFloat buttonWidth = 120; static const CGFloat spacing = 20;
- (void)layoutPortrait { CGRect b = self.view.bounds;
CGFloat contentWidth = CGRectGetWidth(b) - (2 * spacing); CGFloat contentHeight = CGRectGetHeight(b) - (4 * spacing) - (2 * buttonHeight);
self.contentView.frame = CGRectMake(spacing, spacing, contentWidth, contentHeight);
CGFloat buttonRow1y = contentHeight + (2 * spacing); CGFloat buttonRow2y = buttonRow1y + buttonHeight + spacing;
CGFloat buttonCol1x = spacing; CGFloat buttonCol2x = CGRectGetWidth(b) - buttonWidth - spacing;
self.actionButton1.frame = CGRectMake(buttonCol1x, buttonRow1y, buttonWidth, buttonHeight); self.actionButton2.frame = CGRectMake(buttonCol2x, buttonRow1y, buttonWidth, buttonHeight); self.actionButton3.frame = CGRectMake(buttonCol1x, buttonRow2y, buttonWidth, buttonHeight); self.actionButton4.frame = CGRectMake(buttonCol2x, buttonRow2y, buttonWidth, buttonHeight); }
- (void)layoutLandscape { CGRect b = self.view.bounds;
CGFloat contentWidth = CGRectGetWidth(b) - buttonWidth - (3 * spacing); CGFloat contentHeight = CGRectGetHeight(b) - (2 * spacing);
self.contentView.frame = CGRectMake(spacing, spacing, contentWidth, contentHeight);
CGFloat buttonX = CGRectGetWidth(b) - buttonWidth - spacing; CGFloat buttonRow1y = spacing; CGFloat buttonRow4y = CGRectGetHeight(b) - buttonHeight - spacing;
CGFloat buttonRow2y = buttonRow1y + floor((buttonRow4y - buttonRow1y) * 0.333); CGFloat buttonRow3y = buttonRow1y + floor((buttonRow4y - buttonRow1y) * 0.667);
self.actionButton1.frame = CGRectMake(buttonX, buttonRow1y, buttonWidth, buttonHeight); self.actionButton2.frame = CGRectMake(buttonX, buttonRow2y, buttonWidth, buttonHeight); self.actionButton3.frame = CGRectMake(buttonX, buttonRow3y, buttonWidth, buttonHeight); self.actionButton4.frame = CGRectMake(buttonX, buttonRow4y, buttonWidth, buttonHeight); }
|