视图控制器 旋转

//用来控制当前视图控制器是否支持旋转
- (BOOL)shouldAutorotate  // 自动旋转
{
    return YES;
}
//设置屏幕旋转的方向,系统默认支持三个方向的旋转,竖直,左右横屏.
// UIInterfaceOrientationMaskPortrait 竖直方向 正方向
//UIInterfaceOrientationMaskLandscapeLeft 左横屏
//UIInterfaceOrientationMaskLandscapeRight 右横屏
//UIInterfaceOrientationMaskLandscape 左右 横屏
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}
//当屏幕将要旋转时触发(此时屏幕还未旋转)
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    //当屏幕将要旋转时,需要暂停音乐播放,视频播放,关闭用户交互.
    NSLog(@"%s",__FUNCTION__);
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}

//当屏幕旋转时触发.
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    //在该方法中,如果想要在屏幕旋转时添加自己的动画,在该方法中实现.
    
        NSLog(@"%s",__FUNCTION__);
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}

//当屏幕旋转完成之后触发.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
        NSLog(@"%s",__FUNCTION__);
    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
    //旋转之后,继续音乐播放,继续播放视频,打开用户交互.
}

//党对视图控制器上的View布局时重新布局时 触发.
- (void)viewWillLayoutSubviews
{
    
    [super viewWillLayoutSubviews];
   // NSLog(@"QC");
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;

}
- (void )sel:(UIButton *)btn
{
   // [_tf resignFirstResponder];
    
}

//释放掉暂时不使用的内存,供当前程序使用.
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    //当收到内存警告时,移除未在当前屏幕显示的视图.
    
    //判断是否可以安全的移除控制器的View
    //判断当前视图控制器的view是否正在屏幕上显示. self.view.window 是否为nil;
    
  //判断当前视图控制器的view是否已经成功加载. isViewLoaded 视图是否加载
    
    
    if (!self.view.window && [self isViewLoaded])
    {
        //安全移除控制器的view
        self.view = nil; //相等于 [_view release]; _view = nil;
    }
  //      NSLog(@"View : %@",self.view.window);
    
}

//当屏幕每次旋转时都会触发视图的重新布局方法,为该视图上的子视图重新布局.
- (void)layoutSubviews
{
    [super layoutSubviews];
   // NSLog(@"QCC");
    
    //对子视图重新布局.
    //根据屏幕旋转的方向,决定布局的样式.
    //1.获取屏幕旋转的方向 statusBarOrientation 状态条 高度 20
    
    switch ([UIApplication sharedApplication].statusBarOrientation) {
        case UIInterfaceOrientationPortrait:
        //    NSLog(@"竖直方向(正)");
          //  _button.frame = CGRectMake(60, 240, 200, 40);
            
        case UIInterfaceOrientationPortraitUpsideDown:
       //     NSLog(@"竖直方向(反)");
            _button.frame = CGRectMake(60, 240, 200, 40);
            break;
        case UIInterfaceOrientationLandscapeLeft:
        //    NSLog(@"左方向");
            //_button.frame = CGRectMake(320, 160, 60, 40);
           
        case UIInterfaceOrientationLandscapeRight:
            
            //设置横屏时视图的显示样式
            _button.frame = CGRectMake(320, 160, 60, 40);
       //     NSLog(@"右方向");
            break;
            
        
        default:
            break;
    }
}

时间: 2024-10-06 16:16:11

视图控制器 旋转的相关文章

视图控制器、MVC、屏幕旋转、内存警告

使用视图控制器的步骤: 1.创建一个根视图控制器 aController 2.在AppDelegate中引用aController的头文件,并且指定AppDelegate的根视图控制器为aController,代码如图: 3.设置了AppDelegate的根视图控制器,但是aController视图控制器的默认视图是空白视图,并且背景色是透明色,所以如果想要显示内容,就有两种方法,一种是:直接在viewDidLoad方法中创建视图,并且添加到根视图上面(viewDidLoad是视图控制器自带的根

UI第三讲.自定义视图 视图控制器指定自定义view 检测屏幕旋转 处理内存警告 容器视图控制器

一.自定义视图 (自定义label-textField视图) 目的:为了进一步优化登录界面,提高代码的精简程度和复用性,可移植性,从而需要在原有视图控件的基础之上自由组合成自定义视图. 一般自定义的视图会继承于UIView.以下是自定义视图的要点和步骤: 1.创建一个UIView子类 2.在类的初始化方法中添加子视图 3.类的.h文件提供一些接口(方法),便于外界操作子视图. 例子及相应代码: 例题:假设我们使用LTView类代表label-textfield视图.创建一个LTView类继承于U

UI基础:视图控制器.屏幕旋转.MVC

UIViewController 视图控制器,继承自UIResponder,作用:管理视图并且响应事件 功能: 1.分担APPdelegate的工作 2.实现模块独立,能提高复用性 创建UIViewController对象: UIViewController *viewController=[[UIViewController alloc]init]; UIViewController 自身带了一个UiView,默认的大小和屏幕大小一样. 每一个window都带有一个根视图,如果不给根视图赋值,

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

UI开发----自定义视图和视图控制器(Controller)

//  Created By 郭仔  2015年04月14日21:34:01 一.自定义视图: 根据需求的不同,?自定义视图继承的类也有所不同.?一般?自定义的 视图会继承于UIView.以下是?自定义视图的要点: 1.创建?一个UIView?子类 2.在类的初始化?方法中添加?子视图 3.类的.h?文件提供?一些接?口(?方法),便于外界操作?子视图 ================== 这里以label-textfield自定义视图为例: 把Label和Textfield封装到LTView中

视图控制器

?.?定义视图(label-textField组合视图 LTView) ?定义视图:系统标准UI之外,??组合?出的新的视图. ?定义LTVie━使?了?种设计模式:复合设计模式. 复合设计模式:A类中,使?B类(或者更多类)作为??的成员(实 例变量). iOS新控件往往都是?已有控件组 合?成的. 1.新建一个空模板的工程,将环境配置为MRC,四步走     2.新建一个视图控制器,将此视图控制器指定为window的根视图控制器     3.自定义视图LTView,明确LTView内部的控件

UI-自定义视图、视图控制器

自定义视图 自定义视图:系统标准UI之外,自己组合而出的新的视图. iOS提供了很多UI组件,借助它们,我们可以做各种程序. 创建步骤 创建一个UIView子类 在类的初始化方法中添加子视图 类的.h文件提供一些接口(方法),便于外界操作子视图 视图控制器 UIViewController:视图控制器: 控制视图显示,响应事件: 分担AppDelegate的工作: 实现模块独立,提高复用性. 视图控制器功能 控制试图大小变换.布局视图.响应事件 检测以及处理内存警告 检测以及处理屏幕旋转 检测视

UI_03 ?定义视图、视图控制器

?.?定义label-textField视图 自定义LTView类,封装UILabel与UITextField,实现快速创建以下类型的视图 **** 使用UIView子类实现 **** LTView.h #import <UIKit/UIKit.h> @interface LTView : UIView @property (nonatomic, retain)UILabel * label; @property (nonatomic, retain)UITextField * textFie

iOS学习之视图控制器

一.自定义视图(label-textField组合视图) 1.自定义视图:系统标准UI之外,自己组合出的新的视图. 2.优点:iOS提供了很多UI组件,借助它们我们可以实现不同的功能.尽管如此,实际开发中,我们还需自定义视图.积累自己的代码库,方便开发.自己封装的视图,能像UI空间一样,用于别的项目中,能大大降低开发成本,提高开发效率. 3.高质量代码的特点:可复用,可移植,精炼等.(高内聚,低耦合). 4.自定义视图步骤 根据需求的不同,自定义视图继承的类也有所不同.一般自定义的视图会继承于U