• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:31:04 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一点关于当 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 是如何为某些 UIViews 创建这种交叉淡入淡出混合效果的?



Best Answer-推荐答案


不要使用原生自动旋转来旋转您的 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap