gpt4 book ai didi

带有 UINavigationController 的 iOS7 自定义过渡

转载 作者:可可西里 更新时间:2023-11-01 05:22:03 24 4
gpt4 key购买 nike

我正在使用 iOS7 自定义转换以模态方式呈现新的 View Controller 。

新的 View Controller 是一个导航 Controller 。

Controller 从底部向上动画,同时背景 View 模糊。

我的问题是新 Controller 上的导航栏在向上动画时似乎允许状态栏,即它似乎有 64 点高。当它到达最终位置并调用 completeTransition 时,它意识到不需要状态栏空间并快速回到 44 点。

有没有办法

  • 最初通知导航 Controller /顶 View Controller 不需要状态栏。或者
  • 在动画之前调用 completeTransition 正在调用的任何方法,以便随后进行自动重新调整。

动画时:

While animating

动画完成:

Animation complete

最佳答案

诀窍是在将其初始位置设置为离开屏幕底部后,将呈现的 View Controller 的 View 添加到容器 View 。这可以防止容器 View 认为它位于屏幕顶部并相应地自动布局状态栏。

WRESTLING WITH STATUS BARS AND NAVIGATION BARS ON IOS 7的以下相关:

“UINavigationController 会将其 UINavigationBar 的高度更改为 44 点或 64 点,具体取决于一组相当奇怪且未记录的约束。如果 UINavigationController 检测到其 View 框架的顶部在视觉上与其 UIWindow 的顶部相邻,然后它以 64 点的高度绘制它的导航栏。如果它的 View 的顶部与 UIWindow 的顶部不连续(即使只相差一个点),那么它以“传统”方式绘制它的导航栏,高度为44 分。此逻辑由 UINavigationController 执行,即使它在应用程序的 View Controller 层次结构中有多个子项。没有办法阻止此行为。”

关于带有 UINavigationController 的 iOS7 自定义过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19317988/

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