【问题标题】:UISearchBar in iOS 13 have small black spot next to the dismiss (x) buttoniOS 13 中的 UISearchBar 在关闭 (x) 按钮旁边有一个小黑点
【发布时间】:2019-09-23 21:33:31
【问题描述】:

在 iOS 13 中,我们在使用 UISearchBar(通过 UISearchController)时看到了这个错误。在关闭按钮 (x) 旁边有一个黑色的小片段。

iOS 12.4 中不存在此问题。

使用 UI 调试器,我发现问题是由我们自己本地化“取消”字符串引起的(因为我们希望将应用程序翻译成比 Apple 系统 UI 支持的语言更多的语言),使用以下代码:

UIButton.appearance(whenContainedInInstancesOf: [UISearchBar.self])
        .setTitle("Cancel", for: .normal)

【问题讨论】:

  • 也许您可以在调试器中检查视图层次结构,以找出此处被半遮蔽的视图。

标签: ios ios13


【解决方案1】:

每个 cmets,https://stackoverflow.com/a/58040862/95309 有一个修复:

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).title

UIButton.appearanceUIBarButtonItem.appearance 之间的差异似乎是罪魁祸首。

【讨论】:

  • 这会在你在 iOS 13 上运行时崩溃,访问 set get KVO 现在是私有 api。
  • @NataMio nope,不会在 iOS 13 上崩溃。私有 API(传统上)以下划线开头,所以这几乎是一个公共 API。
  • @NataMio 是的,这是下划线版本。这是一个很大的区别,因为这将访问 ivar,而不是属性。
  • 但是我猜你是对的。
  • @NataMio 无论如何,该链接中的建议也可以完美运行。 UIButton.appearanceUIBarButtonItem.appearance 之间的区别似乎可以解决问题。
猜你喜欢
  • 2011-05-10
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多