gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:49:06 25 4
gpt4 key购买 nike

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

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

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

The home screen of my app. When the device rotates, the UINavigationController elements cross-fade.

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

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

我只是想知道,现在有没有人知道 Apple 在设备方向发生变化时实际上是如何为某些 UIView 创建这种交叉淡入淡出混合效果的?

最佳答案

不要使用 native 自动旋转来旋转您的 View 。手动旋转它们。在这里查看第二个答案:http://stackoverflow.com/questions/1220580/iphone-dev-manually-rotate-view。本质上,您注册了设备轮换通知并自己进行 View 轮换。

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

[UIView transitionWithView:superViewOfButtonView duration:2.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
[thebuttonViewIWantToCrossFade setFrame:newPositionRect];
}completion:^(BOOL finished){
//any completion code
}];

让我知道这是否适合您!

关于ios - 在设备方向更改时交叉淡入淡出某些 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com