我可以着色(黑色)UIKeyboard吗?如果是这样,怎么样?
问题描述:
有没有办法获得黑色键盘?默认的是蓝色。 Alert类型是半透明黑色。我想知道是否有可能使键盘变黑,例如不透明。或者我必须拉起键盘后面的黑色视图才能降低透明度效果?我可以着色(黑色)UIKeyboard吗?如果是这样,怎么样?
答
简短的回答是,没有。您可以显示的只有两个键盘是正常键盘和提示样式键盘。
有办法破解,得到ui键盘并改变它的组成。我不会推荐这样做,因为它会1)可能会让你的应用程序被应用程序商店拒绝,2)可能会在iOS版本下次出现时破坏它。
看起来像在键盘后面放置黑色或白色视图应该适用于应用程序。在这种情况下,我会建议您寻找here以在键盘下方将黑色视图制作为动画。
答
由于本规定上面你可以使用这两个值中的一个:
[textView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault];
答
这里是代码通过隐藏它来去除UIKeyboard
背景。随意修改它的着色UIKeyboard
:
-(NSArray*)subviewsOfView:(UIView*)view withType:(NSString*)type{
NSString *prefix = [NSString stringWithFormat:@"<%@",type];
NSMutableArray *subviewArray = [NSMutableArray array];
for (UIView *subview in view.subviews) {
NSArray *tempArray = [self subviewsOfView:subview withType:type];
for (UIView *view in tempArray) {
[subviewArray addObject:view];
}
}
if ([[view description]hasPrefix:prefix]) {
[subviewArray addObject:view];
}
return [NSArray arrayWithArray:subviewArray];
}
-(void)removeKeyboardBackground{
for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
for (UIView *keyboard in [keyboardWindow subviews]) {
for (UIView *view in [self subviewsOfView:keyboard withType:@"UIKBBackgroundView"]) {
view.hidden=YES;
}
}
}
}
只要打电话[self removeKeyboardBackground]
你UIKeyboardDidShowNotification
收到NSNotification
后。用你想要的任何东西替换view.hidden=YES;
来做任何你想要的背景视图。