美文网首页iOS开发札记iOS收藏ios
iOS屏幕旋转各类集锦(二)-单页部分旋转

iOS屏幕旋转各类集锦(二)-单页部分旋转

作者: 小布走慢点 | 来源:发表于2016-03-18 15:51 被阅读720次

    类似bilibili和YY直播,APP效果

    Untitled.gif

    基础知识:
    iOS屏幕旋转各类集锦(一)

    •     UIViewController实现屏幕旋转
      

    在响应设备旋转时,我们可以通过UIViewController的方法实现更细粒度的控制,当view controller接收到window传来的方向变化的时候,流程如下:
    1、首先判断当前viewController是否支持旋转到目标方向,如果支持的话进入流程2,否则此次旋转流程直接结束。
    2、调用 willRotateToInterfaceOrientation:duration:
    方法,通知view controller将要旋转到目标方向。如果该viewController是一个container view controller的话,它会继续调用其content view controller的该方法。这个时候我们也可以暂时将一些view隐藏掉,等旋转结束以后在现实出来。
    3、window调整显示的view controller的bounds,由于view controller的bounds发生变化,将会触发 viewWillLayoutSubviews 方法。这个时候
    self.interfaceOrientationstatusBarOrientation方向还是原来的方向。
    4、接着当前view controller里的
    willAnimateRotationToInterfaceOrientation:duration:
    方法将会被调用。系统将会把该方法中执行的所有属性变化放到动animation block中。
    5、执行方向旋转的动画。
    6、最后调用 didRotateFromInterfaceOrientation:
    方法,通知view controller旋转动画执行完毕。这个时候我们可以将第二部隐藏的view再显示出来。

    又到道理我都懂,但是咋用呢?

    - (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
    {
        if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
            //如果当前是竖屏要完成的事情
        }else {
            //其他情况完成事情
        }
    }
    

    iOS屏幕旋转各类集锦(一)-单页旋转
    附上demo地址https://github.com/bloodspasm/ScreenRotationDemo2

    相关文章

      网友评论

        本文标题:iOS屏幕旋转各类集锦(二)-单页部分旋转

        本文链接:https://www.haomeiwen.com/subject/gfxhlttx.html