iOS7 UIToolbar 上缺少阴影(细线)

Posted

技术标签:

【中文标题】iOS7 UIToolbar 上缺少阴影(细线)【英文标题】:Missing shadow (hairline) on iOS7 UIToolbar 【发布时间】:2013-12-18 23:01:03 【问题描述】:

ios7 中,UIToolbar 在顶部或底部边框上似乎没有一条小线(阴影),这使得与应用程序的其余部分难以区分。当工具栏位于屏幕顶部时,如何恢复工具栏底部的阴影?

编辑:我应该澄清我的工具栏位于屏幕顶部。在四处移动之后,我意识到它正在绘制一个阴影,但它在顶部,因此不在屏幕上。我想要的是让阴影像 UINavigationBar 一样出现在底部。

【问题讨论】:

您是否尝试在支持 UIToolbar 的 CALayer 上设置阴影? 啊...一个想法...它可能只是在屏幕外工具栏顶部绘制阴影。我想在底部有一个阴影,比如 UINavigationBar。 @GoldenJoe 您需要实现工具栏的委托。看我的回答。 【参考方案1】:

这是因为默认情况下,工具栏附在底部,所以阴影线出现在顶部(如果它们在底部)。您需要设置工具栏的委托,并像这样实现以下UIBarPositioningDelegate 方法:

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar

    return UIBarPositionTop; //or UIBarPositionTopAttached

【讨论】:

就是这样。似乎它应该只是您可以设置的属性。感谢您的帮助。【参考方案2】:

我刚刚遇到了一个视图位于顶部和底部工具栏之间并配置为自动调整大小以填充空间的情况。但是,它位于底部工具栏的上方,并且自动调整大小使其覆盖了底部工具栏的顶部阴影。解决方案是在 Interface Builder 中调整分层,使工具栏位于其他视图之上。

【讨论】:

以上是关于iOS7 UIToolbar 上缺少阴影(细线)的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中移除 UIToolbar 细线

iOS7.x中clipsToBounds时UIToolBar失去半透明

iOS7 UIToolbar 崩溃

更改 UIBarButtonItem 的 UIToolbar 阴影颜色

iOS 7.1 UINavigationbar 和 UIToolbar

iOS7 上的 UIToolbar 样式