【 Beginning iOS 7 Development《精通iOS7開發》】05 Autorotation and Autosizing

來源:互聯網
上載者:User

標籤:ios   旋轉螢幕   

一、旋轉後相對位置不變

<img src="http://img.blog.csdn.net/20140716104252587?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong></p><p><strong><span style="font-size:24px"><img src="http://img.blog.csdn.net/20140716104037843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px"><span style="font-size:24px"><strong>二、旋轉後</strong></span>相對位置變化</span></strong></p><p><strong><span style="font-size:24px">     2.1預設:</span></strong></p><p><strong><span style="font-size:24px"><img src="http://img.blog.csdn.net/20140716104736835?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20140716104742795?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20140716104755025?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px">     2.2調整後</span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px"><img src="http://img.blog.csdn.net/20140716104652390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20140716104713828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20140716104957298?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20140716104734375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px">三、小雞  </span></strong></p><p><strong><span style="font-size:24px">      3.1 在APP層級設定支援哪些方向:</span></strong></p><p><strong><span style="font-size:24px">   <img src="http://img.blog.csdn.net/20140716105023312?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px">     3.2 在viewController(xlib)層級設定<strong><span style="font-size:24px">支援哪些方向</span></strong></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><p><strong><span style="font-size:24px"></span></strong></p><pre code_snippet_id="427694" snippet_file_name="blog_20140716_2_4821943" name="code" class="objc">//// JAViewController.m// Orientations//// Created by jason on 14-7-15.// Copyright (c) 2014年 jason. All rights reserved.//#import "JAViewController.h"@interface JAViewController ()@[email protected] JAViewController- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}//重寫這個方法-(NSUInteger)supportedInterfaceOrientations{// return (UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskPortraitUpsideDown);// return UIInterfaceOrientationMaskAll; return (UIInterfaceOrientationMaskLandscapeRight|UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskPortraitUpsideDown);}@end

       3.3 使用約束Contstraints



    3.4 當上面的Contraints辦法滿足不了時,關閉掉它,讓後在ViewController.m中通過代碼實現。



////  JAViewController.m//  Restructure////  Created by jason on 14-7-16.//  Copyright (c) 2014年 jason. All rights reserved.//#import "JAViewController.h"@interface JAViewController ()@property (weak, nonatomic) IBOutlet UIButton *actionButton1;@property (weak, nonatomic) IBOutlet UIButton *actionButton2;@property (weak, nonatomic) IBOutlet UIButton *actionButton3;@property (weak, nonatomic) IBOutlet UIButton *actionButton4;@property (weak, nonatomic) IBOutlet UIView *contentView;@end@implementation JAViewController- (void)viewDidLoad{    [super viewDidLoad];// 從這裡開始    UIApplication *app = [UIApplication sharedApplication];    UIInterfaceOrientation currentOrientation = app.statusBarOrientation;    [self doLayoutForOrientation:currentOrientation];//跳轉到實際處理處}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}//從這裡開始-(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);}@end






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.