菜鸟教程小白 发表于 2022-12-12 22:31:04

ios - 在设备方向更改时交叉淡入某些 UIView


                                            <p><p>我有一点关于当 iOS 设备改变方向时某些 View 如何旋转的问题。</p>

<p>我现在正在开发一个应用程序,它基本上由 2 个 ViewController 组成:第一个是嵌入在 UINavigationController 中的 UITableViewController,第二个是基于标准 UIViewController 构建的完全自定义的。</p>

<p>我注意到在我的 UINavigationControllerView 中,当设备旋转时,UINavigationBar 和 UIToolbar 在转换到横向尺寸时都会执行交叉淡入淡出动画。</p>

<p> <img src="/image/fz8py.png" alt="The home screen of my app. When the device rotates, the UINavigationController elements cross-fade."/> </p>

<p>出于技术原因,我没有为我的自定义 ViewController 使用 UINavigationController,但我在相同的位置手动添加了 UINavigationBar 和 UIToolbar(基本上是因为我需要这些元素能够覆盖在顶部的背景 View ,因为它们可以选择隐藏,我希望直接控制来做到这一点)。</p>

<p>但是,当我在自定义 ViewController 可见时旋转我的设备时,两个条不会执行交叉淡入淡出过渡。相反,所有的 subview 都在滑动(看起来有点困惑),并且背景图像在动画实际开始之前立即切换到 iPhone 横向版本而扭曲(即,它开始将 32pt 高的艺术品平铺在一个44pt 高的 UIToolbar)。</p>

<p>我只是想知道,现在有没有人知道当设备方向改变时,Apple 是如何为某些 UIViews 创建这种交叉淡入淡出混合效果的?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>不要使用原生自动旋转来旋转您的 View 。手动旋转它们。在这里查看第二个答案:http://stackoverflow.com/questions/1220580/iphone-dev-manually-rotate-view。本质上,您注册设备轮换通知并自己进行 View 轮换。</p>

<p>如果你想交叉淡入淡出除了上面链接中指定的 UIView 动画 block 之外的两个 View ,请转到:</p>

<pre><code>[UIView transitionWithView:superViewOfButtonView duration:2.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    ;
}completion:^(BOOL finished){
    //any completion code   
}];
</code></pre>

<p>让我知道这是否适合你!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在设备方向更改时交叉淡入某些 UIView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12083668/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12083668/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在设备方向更改时交叉淡入某些 UIView