zoukankan      html  css  js  c++  java
  • 判断屏幕横屏/竖屏

    • 在屏幕发生翻转的时候会调用一些方法:- (void)viewWillLayoutSubviews; / - (void)viewDidLayoutSubviews;以及- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator

    • 注意:这些方法都是在ViewController里面,在view中没有的

    方法一:

    • 使用- (void)viewWillLayoutSubviews;方法:
    - (void)viewWillLayoutSubviews
    
    {
    
         [self _shouldRotateToOrientation:(UIDeviceOrientation)[UIApplication sharedApplication].statusBarOrientation];
    
    }
    
    -(void)_shouldRotateToOrientation:(UIDeviceOrientation)orientation {
       if (orientation == UIDeviceOrientationPortrait ||orientation ==
                    UIDeviceOrientationPortraitUpsideDown) { // 竖屏
    
        } else { // 横屏
    
    }

    方法二:

    • 使用- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
      • size : 屏幕翻转后的新的尺寸;
      • coordinator : 屏幕翻转过程中的一些信息,比如翻转时间等;
    #pragma mark - 屏幕翻转就会调用
    - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
    
        // 记录当前是横屏还是竖屏
        BOOL isLandscape = size.width == kLandscapeWidth;
    
        // 翻转的时间
        CGFloat duration = [coordinator transitionDuration];
    
        [UIView animateWithDuration:duration animations:^{
    
            // 1.设置dockview的frame
            [self.dockView rotateToLandscape:isLandscape];
    
            // 2.屏幕翻转后(设置完dockview的frame)要重新设置contentView的x值
            self.contentView.x = self.dockView.width;
    
        }];
    }
    • 子控件提供了一个方法- (void)rotateToLandscape:(BOOL)isLandscape;根据传入的isLandscape参数即可知道当前的屏幕状态,便于设置子控件在不同屏幕状态下的frame



    原文链接:http://www.jianshu.com/p/720ef8571d11
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    树上DP
    区间dp
    [持续更新]学习并记忆 Linux 下的常用的命令
    区间dp
    codevs 2152
    树上DP入门题
    差分与前缀和
    POJ
    VJ
    Week 5: Object Oriented Programming 9. Classes and Inheritance Exercise: int set
  • 原文地址:https://www.cnblogs.com/lyy-5518/p/5386004.html
Copyright © 2011-2022 走看看