iPhone键盘透明度

5

我对iPhone开发非常新手,如果这很简单的话,请不要介意。

是否可以更改iPhone键盘的透明度(或者如果可能的话,甚至更改颜色)。

我知道您可以获取对键盘视图的引用(提供链接) http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/7350-adding-subviews-custimize-keyboard.html

我在stackoverflow上找到了这篇文章,它让我相信可以通过动画来完成。 iPhone UIView Animation Best Practice

但我不知道应该把这段代码放在哪里。

感谢任何想法和评论。欢迎友好的一切 :)

-TK

感谢大家的评论。虽然我不在乎它是否通过应用商店,但只是想尝试一下。再次感谢 :)


+1 链接获取键盘。谢谢 TK! - TamusJRoyce
2个回答

13

公共API中只有两种可用的样式:

[textView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault];

但是你可以使用私有API方法来检索键盘的实现:

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];

让它变得更加透明。

[keyboardImpl setAlpha:0.8f];

调整它的色调,

UIView *tint = [[UIView alloc] initWithFrame:[keyboardImpl frame]];
[tint setBackgroundColor:[UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.3f]];
[tint setUserInteractionEnabled:NO];
[[keyboardImpl superview] insertSubview:tint aboveSubview:keyboardImpl];
[tint release];

甚至可以翻转它:

[[keyboardImpl window] setTransform:CGAffineTransformMakeScale(-1.0f, 1.0f)];

但所有这些都会防止您的应用程序被批准


嗨,当我尝试使用UIKeyboardImpl方法时,我收到了一个错误“暗示声明库函数'objc_getClass'类型为'id(const char *)”。我不太熟悉私有API的用法。我需要导入任何类或创建一个分类吗? - Anshul

-1
如果你这样做,苹果将会拒绝你的应用程序,因为你正在攻击操作系统的一部分对象(并不是说我同意这种做法,但苹果非常注重人们改变他们的用户界面的外观)。

谢谢你提醒我,但我离提交应用程序还有很长一段路要走。你认为这是可能的吗? - TEEKAY
保罗是正确的。如果应用程序使用黑客或使用私有API方法,苹果可能不会批准该应用程序。 - lostInTransit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接