将导航栏设置为与 iOS 7 上的深色键盘相同的颜色

Posted

技术标签:

【中文标题】将导航栏设置为与 iOS 7 上的深色键盘相同的颜色【英文标题】:Setting the navigation bar to the same color as the dark keyboard on iOS 7 【发布时间】:2013-12-08 01:56:34 【问题描述】:

初学者问题!我想将应用中的导航栏设置为与深色键盘相同的颜色。

我正在通过调用将应用设置为仅使用深色键盘:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark];

我希望导航栏的颜色与键盘的背景颜色相匹配。改变导航栏的颜色很容易,通过调用类似的方法:

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.0f green:0.4f blue:0.0f alpha:1.0f]];

但我想使用与键盘相同的颜色。有没有办法专门调用键盘颜色?或者,有人知道键盘颜色的具体值是什么吗?

【问题讨论】:

【参考方案1】:

看看UIInputView

UIInputView 类被设计为与标准系统键盘的外观相匹配,当用作响应器的输入视图时。在定义您自己的自定义输入视图或输入附件视图时,您可以使用 UIInputView 对象作为根视图并添加您想要创建输入视图的任何子视图。输入视图及其子视图根据您在初始化时指定的选项接收着色和模糊效果。

【讨论】:

【参考方案2】:

我不知道本地检索它的方法,但颜色只是灰色。

[UIColor colorWithRed:.3f green:.3f blue:.3f alpha:1.0f]

【讨论】:

【参考方案3】:

要正确匹配背景,您确实需要一个半透明的视图。为了近似它,您应该在键盘下方放置一个完全黑色的背景,并使用 Pixie(开发工具 google it)记录白色值,然后在白色值下。通过求解两个联立线性方程,您可以计算出适当的 alpha 值。现在您可以在纯色背景下获得正确的外观。

要获得模糊效果,您需要继承 uitoolbar - 它是目前唯一具有模糊效果的可重用视图。请参阅https://github.com/dhoerl/CreateShadowedRoundRectButtonImage 了解上述代码。

【讨论】:

以上是关于将导航栏设置为与 iOS 7 上的深色键盘相同的颜色的主要内容,如果未能解决你的问题,请参考以下文章

在我的导航栏 iOS 7 中设置色调/半透明级别的问题

更改 UISearchBar 的条形颜色 - iOS

iOS hidesBarsOnSwipe 状态栏背景颜色

重置状态栏颜色

将导航栏更改为图像

导航栏可能导致 UIView 偏移