ios - UINavigationController自定义模态转换,导航栏太小

标签 ios modalviewcontroller uiviewanimationtransition

我正在使用自定义转换来模态显示 UINavigationController 内的 UIViewController。我正在使用缩放过渡,该过渡以较小的框架开始,以 UINavigationController 全屏结束。

    toView.transform = CGAffineTransformMakeScale(kInitialScale, kInitialScale);
    [containerView addSubview:toView];

    [UIView animateWithDuration:duration animations: ^{
        toView.transform = CGAffineTransformMakeScale(1.0, 1.0);
    } completion: ^(BOOL finished) {
        [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
    }];

我的问题是 UINavigationController 是使用导航栏创建的,该导航栏没有考虑状态栏(比应有的小),并且仅在达到全屏尺寸时才进行调整(从 44 到 64px)。导航标题在动画末尾偏移。

知道如何避免标题的最终偏移并从一开始就创建具有良好导航栏尺寸的导航 Controller 吗?

最佳答案

在转换之前将 toView 添加到 containerView 中就可以了。

关于ios - UINavigationController自定义模态转换,导航栏太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515419/

相关文章:

ios - Dismiss UIViewController 不释放内存

ios - 自更新到 Xcode 13 以来,我收到一个 codsign 错误

ios - 模态视图透明背景 - 停止下层隐藏?

ios - URLSession 配置的 header 设置仅适用于 PUT,不适用于 POST

iphone - 在相互竞争的模态视图 Controller 之间切换

ios - Swift:transitionFromView 翻转整个屏幕而不是 View

ios - 自定义缩放过渡不适用于模态演示

uiview - 如何使用动画缩放 uiview 及其内部的所有内容(其他自定义绘制的 uiview)?

ios - 如何在 Swift 中设置游戏循环

ios - 切换到 Xcode 8 beta?