UIKeyboard在iOS7中不会自动半透明

Pav*_*van 5 objective-c uikeyboard ios ios7 xcode5

据我所知,在Xcode 5和iOS 7项目中进行开发时,与UITextField交互时弹出的键盘应该是半透明的,并通过背景中的任何颜色显示.在我的两个项目中都不是这种情况.我有一个彩色和模糊的背景,我希望通过键盘发现; 但是键盘仍然是默认的白色/灰色.

这是我到目前为止的演示:

UIColor *tintColor = [UIColor colorWithWhite:0.21 alpha:0.4];
UIColor *background = [[UIColor alloc] initWithPatternImage:[[UIImage imageNamed:@"universe.jpg"] applyBlurWithRadius:19
                                                                                                            tintColor:tintColor
                                                                                                saturationDeltaFactor:1.8
                                                                                                            maskImage:nil]];
self.view.backgroundColor = background;

UITextField *text = [[UITextField alloc] initWithFrame:CGRectMake(200, 200, 300, 60)];
[self.view addSubview:text];
Run Code Online (Sandbox Code Playgroud)

我甚至试图将键盘外观类型设置为UIKeyboardAppearanceDefault和UIKeyboardAppearanceLight

有人可以指导/告诉我如何实现键盘半透明效果?这应该是自动的吗?谢谢

编辑1:

我有iPad mini,我有第3代iPad和第4代iPad都有视网膜显示器.运行iOS 7.0.2

zim*_*yan 5

您的代码,设置和示例在我的xCode上运行良好.我首先尝试将背景颜色设置为明显的红色.

self.view.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

这通过键盘显示出来.之后我尝试了没有模糊效果的图像.

UIImageView* img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"images.jpeg"]];
img.frame = self.view.frame;
[self.view addSubview:img];
Run Code Online (Sandbox Code Playgroud)

这显示通过,但没有红色那么多,因为我使用的图像类似于你所说的星系,因此它有很多黑色.

最后,我尝试了您的确切代码,使用高斯模糊效果创建颜色.

UIColor *tintColor = [UIColor colorWithWhite:0.21 alpha:0.4];
UIColor *background = [[UIColor alloc] initWithPatternImage:[[UIImage imageNamed:@"images.jpeg"] applyBlurWithRadius:19 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil]];
self.view.backgroundColor = background;
Run Code Online (Sandbox Code Playgroud)

这也有用,但很难注意到.深色被高斯模糊一次并被键盘再次模糊的综合影响使其几乎无法察觉.我建议你尝试类似的方法,看看你是否真的得到一个透明的键盘,因为如果你给出的代码和信息是正确的,那么它似乎你是,也许看不到它.

键盘也只是略微透明,所以如果您期望完全透明,那么情况并非如此.这种轻微的透明度最小化,背景颜色越均匀,例如,如果你有一个全黑或白色背景,它将是不明显的.

编辑:我确认在运行iOS7.0.x的iPad上不是这种情况我得到了标准的全灰键盘,甚至使用像Safari这样的标准应用程序.苹果似乎没有优化这种大屏幕的透明度,这导致了滞后问题.它似乎也在iOS7.1中得到了部分修复,并且在iOS7.1中有更多透明的iPad功能,但人们建议关闭它们,因为它们会导致iPad运行速度比平常慢.


Kur*_*und 1

我构建了一个简单的应用程序来测试以尝试找到此问题,但我无法复制它,除非将 IPHONEOS_DEPLOYMENT_TARGET 设置为较低版本号(如 6.0),然后在 iOS 6.0 上运行。在所有情况下,在所有 iOS 7 设备和模拟器上,默认键盘下方的内容都是半透明模糊的。

也许您可以分享一张图片或一个示例项目?

将 Xcode 设置为在 iOS 6.0 模拟器上运行的目标

键盘没有半透明

将 Xcode 设置为在 iOS 7.0 模拟器上运行的目标

键盘半透明