使用以下方法消除 UINavigationbar 和另一个视图之间的黑字符串的秘诀是什么?

what is the secret of eliminating black string between UINavigationbar and another view by using following method?

我有 UINavigationbar 并在其下方查看。

当我按照说明说时,字符串消失了

   UINavigationBar.appearance().shadowImage = UIImage()
   UINavigationBar.appearance().setBackgroundImage( UIImage(), for: 
  .default)

为什么?

你能告诉我们字符串放在哪里吗?

可能是字符串的颜色与背景颜色相同。

我们可以使用调试检查器调试字符串是否实际存在于 UI 层次结构中并启用显示剪辑内容(这有助于我们了解是否存在任何剪辑视图)。我已附上屏幕截图供您参考。

View inspector

根据文档,一旦您设置了 setBackgroundImage,它就会使用您的自定义实现覆盖 shadowImage。在导航栏上查看它说的 shadowImage:

"/* 默认为 nil。当非 nil 时,显示自定义阴影图像而不是默认阴影图像。 对于要显示的自定义阴影,自定义阴影背景图像也必须使用 -setBackgroundImage:forBarMetrics: 设置(如果使用默认背景图像,将使用默认阴影图像)。 */

@属性(可空,非原子,强) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;"

因此,您使用空白图像覆盖了默认值,而空白图像又会删除您所说的默认阴影或字符串。