gpt4 book ai didi

ios - 在推送过渡期间响应导航栏高度变化

转载 作者:IT王子 更新时间:2023-10-29 05:52:43 26 4
gpt4 key购买 nike

iOS 11 中,将搜索栏添加到 navigationItem.titleView 时,搜索栏现在会将导航栏高度更改为 56dp/p>

我喜欢高度变化,不打算强制高度保持在 44dp 或更低。

不幸的是,当从一个 View Controller 转换到另一个 View Controller 时,将在绘制推送 View 时考虑较大的导航栏,然后在转换完成后更改栏高度。看起来有点像这样:

enter image description here enter image description here

我需要一种方法让导航 Controller 识别过渡期间的高度变化,以便它可以动画到较小的尺寸并正确绘制 View 。

我有一个我不喜欢的当前修复程序,因为它有点不稳定,而且应用程序必须做更多的工作,而且无论它是从哪个 View Controller 推送的,它都必须重新评估它的 View 。

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

if #available(iOS 11, *) {
navigationController?.view.layoutSubviews()
}
}

到目前为止,我还没有发现任何关于堆栈溢出的类似问题,WWDC 的任何评论以及苹果官方文档中的任何内容。然而,我已经看到许多应用程序处理这个问题。 Apple 通讯录应用程序将创建看起来像两个导航栏的东西,并会在它们之间移动而不会对高度变化进行动画处理,而 fb Messenger 应用程序将在高度之间完美过渡,甚至允许交互式弹出过渡。

最佳答案

使用这个,它会保持你的搜索栏的高度固定

if #available(iOS 11.0, *) {
searchBar.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
}

关于ios - 在推送过渡期间响应导航栏高度变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48414837/

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