注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

自动转屏的方法  

2013-04-27 20:58:38|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
实现学习了一下自动转屏,方法为:在IB中为视图设计两个不同版本,一种适用于纵向模式,另一种适用于横向模式,代码如下:

#import <UIKit/UIKit.h>


@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIView *portrait;

@property (strong, nonatomic) IBOutlet UIView *landscape;

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *foos;

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *bars;

- (IBAction)buttonTapped:(id)sender;


@end


------------------------------------------------


#define degressToRadians(x) (M_PI * (x) / 180.0)


#define FIRST_VERSION 1


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController

@synthesize portrait,landscape,foos,bars;


- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

{

    if (toInterfaceOrientation == UIInterfaceOrientationPortrait)

    {

        self.view = self.portrait;

        self.view.transform = CGAffineTransformIdentity;

        self.view.transform = CGAffineTransformMakeRotation(degressToRadians(0));

        self.view.bounds = CGRectMake(0.0, 0.0, 320.0, 460.0);

    }

    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)

    {

        self.view = self.landscape;

        self.view.transform = CGAffineTransformIdentity;

        self.view.transform = CGAffineTransformMakeRotation(degressToRadians(-90));

        self.view.bounds = CGRectMake(0.0,0.0,480.0,300.0);

    }

    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)

    {

        self.view = self.landscape;

        self.view.transform = CGAffineTransformIdentity;

        self.view.transform = CGAffineTransformMakeRotation(degressToRadians(90));

        self.view.bounds = CGRectMake(0.0, 0.0, 480.0, 300.0);

    }

}




- (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.

}


- (IBAction) buttonTapped:(id)sender

{

#ifdef FIRST_VERSION

    NSString *message = nil;

    if ([self.foos containsObject:sender])

        message = @"Foo button pressed";

    else

        message = @"Bar button pressed";

    

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:message

                                                    message:nil

                                                   delegate:nil

                                          cancelButtonTitle:@"Ok"

                                          otherButtonTitles:nil];

    [alert show];

#endif

    if ([self.foos containsObject:sender])

    {

        for (UIButton *oneFoo in self.foos)

        {

            oneFoo.hidden = YES;

        }

    }

    else

    {

        for (UIButton *oneBar in self.bars)

        {

            oneBar.hidden = YES;

        }

    }

}


@end

  评论这张
 
阅读(41)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017