如何删除iOS 7.1中inputView下的灰色图层

AXE*_*AXE 7 objective-c uipickerview ios inputview ios7.1

好的,这是我的应用程序在iOS 7.0中的样子:

现在在iOS 7.1中由于某种原因它看起来像这样:

正如你所看到的那样,而不是白色模糊的背景(绿色的东西实际上是绿色的UITextField下面),它现在是灰色模糊的背景 - 如果你仔细观察,绿色仍然是可见的.

经过大量的实验,我发现这是因为它下方有一层灰色的层UIPickerView.这是我将隐藏属性设置UIPickerView为YES时的结果:

代码非常简单:

_swimlanePicker = [[UIPickerView alloc] initWithFrame:CGRectZero];
_swimlanePicker.delegate = self;
_swimlanePicker.dataSource = self;
[_swimlanePicker setShowsSelectionIndicator:YES];
_swimlaneTextField.inputView = _swimlanePicker;
Run Code Online (Sandbox Code Playgroud)

你有什么想法我怎么能隐藏(或改变这个灰色层的颜色/透明度)?我喜欢旧的外观,并希望在iOS 7.1中实现它.

Ile*_*ian 1

我认为这是苹果对键盘外观进行改变的问题。iOS 7.1 中略有不同。

引用一篇介绍版本之间变化的文章(您可以看到前后键盘的屏幕截图)。

苹果还对键盘进行了微妙的改变。字体稍微粗一些。移位和删除按钮也进行了轻微调整。键盘的背景似乎也比 iOS 7 中的浅一些。它似乎增加了更多对比度,使字母更容易看到。

所以我想如果没有真正丑陋的黑客,你就无法做任何事情,比如搞乱底层的 CALayers。

您可以从此答案中了解如何添加半透明层。来自链接的第一种方法的评论:

本周,一位 Apple UIKit 工程师在他们的 Tech Talks 实验室运行了这个方法。虽然他当然不会认可这种方法,但他认识到这种效果的必要性以及缺乏真正的公共 API,并表示这种方法目前是“最不邪恶”的选择,并且按照书面说明相当安全。具体来说,他说不要尝试做任何框架动画或此工具栏/视图的转换或类似的事情,否则会发生不好的事情。他还强烈建议就此提交 Radar 错误报告,在内部构建一个案例,这样我们就可以获得这种效果的真正的公共 API!