gpt4 book ai didi

iOS:UINavigationController 的交互式弹出手势期间导航栏的全宽自定义 titleView 闪烁

转载 作者:行者123 更新时间:2023-11-29 05:29:31 27 4
gpt4 key购买 nike

我想为我的导航 Controller 使用自定义的 titleView,它占据导航栏中的可用宽度。为了实现此目的,我使用带有 UIView.layoutFittingExpandedSize 的自定义 View ,因为它是内在内容大小。但由于这个layoutFittingExpandedSize,标题 View 在 UINavigationController 的交互式弹出手势期间闪烁。 (请参阅随附的 GIF: https://ibb.co/98hC3rc )

注意:我有一个默认的导航后栏按钮和一个自定义的右栏按钮项目。

  • 如果标题 View 具有固定宽度,则可以修复此问题。但计算导航栏中标题 View 的可用空间是不可能的。
  • 我还尝试过在 View Controller 生命周期方法中切换 translatesAutoresizingMaskIntoConstraints 标志,但它不起作用。
class ProfileVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
let searchBox = SearchView(frame: .zero)
self.navigationItem.titleView = searchBox

self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: nil, action: nil)
}
}

class SearchView: UIView {
override var intrinsicContentSize: CGSize {
return UIView.layoutFittingExpandedSize
}
}

有人可以帮我解决这个标题 View 闪烁的问题吗?提前致谢!

最佳答案

是什么阻止您使用自动布局?您可以监听 titleView 何时添加到 super View ,然后设置约束(尽管确保只执行一次)。

关于iOS:UINavigationController 的交互式弹出手势期间导航栏的全宽自定义 titleView 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57787907/

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