gpt4 book ai didi

ios - 高度错误的模态 UINavigationController 栏

转载 作者:行者123 更新时间:2023-12-01 15:47:05 27 4
gpt4 key购买 nike

注意 :这与 iOS 13 中使用的新默认模态呈现样式无关。

我有一个奇怪的问题,显示模态 UINavigationController .

考虑一个 UIViewController位于 UINavigationController 内:

enter image description here

当此代码在 iOS 13.0 上运行时:

@IBAction func btntap(_ sender: Any) {

let errorViewController = UIViewController()
errorViewController.view.backgroundColor = .blue
errorViewController.title = "Erro na solicitação"

let errorNavigation = UINavigationController()

errorNavigation.navigationBar.barTintColor = UIColor(red: 204/255, green: 0/255, blue: 0/255, alpha: 1.0)

errorNavigation.navigationBar.tintColor = UIColor.white
errorNavigation.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]

errorNavigation.setViewControllers([errorViewController], animated: false)

errorNavigation.modalPresentationStyle = .automatic

self.present(errorNavigation, animated: true, completion: nil)
}

有时候是这样的:

enter image description here

当我们第一次展示模态屏幕时,请注意错误的高度:

enter image description here

我想继续使用类似卡片的演示文稿,但我需要在第一次演示文稿时修复这个错误的高度问题。

当满足以下要求时会发生这种情况:
  • 颁奖UIViewControllerUINavigationController 里面
  • 赠送 UIViewController标题上有特殊字符(“ç”、“ã”等)
  • 礼物是animated true

  • 已经尝试了 layoutIfNeeded() 的一些变体但没有一个工作。

    我怎样才能在第一个礼物上以正确的高度呈现这个?

    最佳答案

    只需像这样用您自己的标签替换 View Controller 的标题。这是一个黑客解决方案,但将始终有效,您将永远不必再考虑它。事实上,我从不调用 viewcontrollers 的 title 属性,我只使用标签并将它们设置为 titleView 以便我可以控制行数、字幕、对齐等。

        let errorViewController = UIViewController()
    errorViewController.view.backgroundColor = .blue

    let errorNavigation = UINavigationController()
    let label = UILabel()
    label.text = "Erro na solicitação"
    label.textColor = .white

    errorViewController.navigationItem.titleView = label

    errorNavigation.navigationBar.barTintColor = UIColor(red: 204/255, green: 0/255, blue: 0/255, alpha: 1.0)

    errorNavigation.navigationBar.tintColor = UIColor.white

    errorNavigation.setViewControllers([errorViewController], animated: false)

    errorNavigation.modalPresentationStyle = .automatic

    self.present(errorNavigation, animated: true, completion: nil)

    哦,是的,在那个注意事项上,字体大小应该在 17-18 左右,从中到粗体,以匹配 ios 默认系统的 viewController 标题值,如果您希望匹配 ios 系统默认值

    关于ios - 高度错误的模态 UINavigationController 栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58596216/

    27 4 0