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

Posted

技术标签:

【中文标题】使用以下方法消除 UINavigationbar 和另一个视图之间的黑色字符串的秘诀是啥?【英文标题】:what is the secret of eliminating black string between UINavigationbar and another view by using following method?使用以下方法消除 UINavigationbar 和另一个视图之间的黑色字符串的秘诀是什么? 【发布时间】:2017-10-04 15:48:18 【问题描述】:

我有 UINavigationbar 并在它下面查看。

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

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

为什么?

【问题讨论】:

【参考方案1】:

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

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

@property(nullable, nonatomic,strong) UIImage *shadowImage NS_AVAILABLE_ios(6_0) UI_APPEARANCE_SELECTOR;"

因此,您将使用空白图像覆盖默认值,从而在您调用它时删除默认阴影或字符串。

【讨论】:

如果我在使用空白视图设置背景图像时正确理解您,然后由于将空白视图设置为背景图像属性而删除了阴影图像? 因为视图是透明的? 默认视图有阴影效果。当您实现自己的自定义视图时,它会删除该行或“字符串”,因为它正在尝试实现您的自定义视图。但是在您的情况下,您说自定义视图只是一个空白的 UIView 实例,仅此而已。如果您的 UIView 有更多内容并定义了其他内容,它会改为显示。【参考方案2】:

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

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

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

View inspector

【讨论】:

这个字符串在主页按钮下面,我没有使用故事板 能否详细说明一下。您所说的字符串是导航标题?

以上是关于使用以下方法消除 UINavigationbar 和另一个视图之间的黑色字符串的秘诀是啥?的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar 在 PushViewController 上隐藏 UIBarButtons

UINavigationBar 背景图片不随旋转而改变

UINavigationBar 未显示,尝试了多个修复

如何在我的 UINavigationBar 后面获得模糊效果

-------如何消除打印机的字迹(字迹打印机消除即)--------

-------如何消除打印机的字迹(字迹打印机消除即)--------