为啥黑色半透明 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 不同,如何使它们看起来相同?的主要内容,如果未能解决你的问题,请参考以下文章