gpt4 book ai didi

iOS 13 UIBarButtonItem 使用 UISearchController 时不可点击且重叠 UINavigationBars

转载 作者:行者123 更新时间:2023-12-02 05:16:46 27 4
gpt4 key购买 nike

我有一个导航栏,其中包含一些 UIBarButtonItem 按钮和一个像这样连接的 UISearchBar

var searchController: UISearchController!

override func viewDidLoad() {
super.viewDidLoad()

title = "Test"

tableView.delegate = self
tableView.dataSource = self

searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController

// This leads to the bug
searchController.hidesNavigationBarDuringPresentation = false

navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(leftTapped))
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(rightTapped))
}

场景:我点击搜索栏,然后点击取消。

  • 问题 1:栏按钮不会对触摸使用react,除非我触摸屏幕最外层的像素(仅适用于模拟器和鼠标单击)。

  • 问题 2:当我推送另一个 View Controller 时,导航项重叠

enter image description here

当我使用 hidesNavigationBarDuringPresentation = true 时,它会按预期工作。

<小时/>

此问题出现在使用 Xcode 11.0 和 11.1 的有缺口和无缺口 iPhone iOS 13.0 和 13.1 上。

这是整个测试项目: https://github.com/fl034/HidesNavigationBarDuringPresentationTest

<小时/>

我已经提交了雷达(你也应该),但也许你们中的一些人已经找到了解决方法?

<小时/>

更新1:iOS 13.1.1中仍然存在Bug

<小时/>

更新 2:iOS 13.2 beta 中修复了错误(感谢 @Ben Gomm)

最佳答案

View 调试器揭示了这个错误的发生情况。正在复制导航栏的内容。这是显示搜索之前导航栏的样子:

enter image description here

这是之后的样子:

enter image description here

两个复制 View 和额外的 UILabel 是问题所在。我不知道他们在那里做什么,也找不到删除它们的方法。

编辑顺便说一下,我认为苹果的一些应用程序也显示了相同的错误。如果您有大标题,则更容易查看,因为这样您可以同时看到大标题和额外标签:

enter image description here

关于iOS 13 UIBarButtonItem 使用 UISearchController 时不可点击且重叠 UINavigationBars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58134631/

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