为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?

Posted

技术标签:

【中文标题】为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?【英文标题】:Why is the top of a black translucent UIToolbar different from a black translucent UISearchBar, and how can I make them look the same?为什么黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同? 【发布时间】:2012-04-25 20:11:41 【问题描述】:

当我将 UIToolbar 添加到 XIB 中的视图时,将其设为黑色半透明样式(而不是不透明),它的顶部有一个 2 像素的黑色描边。同时,黑色半透明样式、非不透明 UISearchBar 在顶部有一个 1 像素的黑色描边。它们都位于同一个位置(向下 44 像素,位于导航栏的正下方)。

我更喜欢 UIToolbar 上的 1px 黑色描边顶部,以使视图与搜索栏相匹配,并使其与导航栏更加融合。我可以在不继承工具栏的情况下实现这一点吗?例如,有没有办法使用搜索栏并隐藏输入字段?

【问题讨论】:

【参考方案1】:

为什么它们不同

它们是不同的,因为它们的放置方式不同。工具栏应放置在屏幕的底部,2px 黑色笔触看起来不错。

例如,查看邮件应用程序 (iPhone),您可以看到(即使它不是半透明的)工具栏有 2 像素的黑色描边,而搜索栏只有 1 像素的描边。您还可以看到它们的放置方式

导航栏下的搜索栏 屏幕底部的工具栏。

如何更改它们

这些都不是一个优雅的解决方案,抱歉。

自己画工具栏

您可以使用 Core Graphics 或 CAGradientLayer 自己绘制整个视图。这会很麻烦,但你可以让它看起来像你喜欢的那样。

剪辑笔画的顶部

您可以将工具栏放置在 43 像素的视图中,并将 clipsToBounds 设置为 YES。通过将工具栏定位在(0, -1),笔划的第一个点/像素将被剪裁并且不会显示。工具栏将小一像素(高度 = 43),因此您必须将超级视图高度设置为 44 像素,工具栏高度设置为 45 像素(仍为 (0,-1))以使其再次变为 44 像素。这将稍微改变渐变,因此最终结果将具有一些其他视觉效果,而不仅仅是移除描边的顶部像素。

【讨论】:

以上是关于为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 应用程序上方的半透明黑色状态栏

叠加在图像上时,使文本显示为白色,具有半透明的黑色背景

黑色半透明通知窗口叫啥名字?

无法将状态栏颜色更改为半透明黑色 [重复]

ios PWA 中的黑色半透明不起作用

黑色半透明导航栏在第一次拖动前不透明