2009-06-23 3 views
4

Сначала я так новичок в iPhone dev, и мне очень жаль, если это легко.Iphone Keyboard Transparency

Возможно ли изменить количество прозрачности на клавиатуре iPhone (или даже цвет, если это возможно).

Я знаю, что вы можете получить ссылку на вид клавиатуры (ссылка предоставляется) http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/7350-adding-subviews-custimize-keyboard.html

Я нашел это StackOverflow пост, который приводит меня к мысли, что это можно сделать с помощью анимации. iPhone UIView Animation Best Practice

, но я понятия не имею, где я бы поставил этот код.

Спасибо за любые мысли и комментарии. Все дружеский ценится :)

-tk

Спасибо за комментарии, ребята. Мне все равно, если он пройдет через магазин приложений. Просто хочу попробовать и сделать это. Еще раз спасибо :)

+0

+1 связать, чтобы получить клавиатуру. Спасибо TK! – TamusJRoyce

ответ

12

Там только два стилей, доступных в государственном 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)]; 

но все предотвратит ваше приложение от утверждения

+0

Большое спасибо – TEEKAY

+0

Привет, когда я пытаюсь использовать метод UIKeyboardImpl, я получаю сообщение об ошибке 'Неявно объявляя библиотечную функцию 'objc_getClass' с типом ' id (const char *) '. Я не очень хорошо знаком с использованием частных API. Нужно ли мне импортировать какой-либо класс или создавать категорию? – Anshul

0

Если вы можете это сделать, Apple отклонит ваше приложение, потому что вы взламываете объекты, которые являются частью операционной системы (не говорю, что я согласен с этим, но Apple очень любит людей, которые меняют внешний вид их пользовательского интерфейса).

+0

Спасибо за головы, я далеко от подачи приложений. Как вы думаете, это можно сделать? – TEEKAY

+0

Пол прав. Apple может не одобрить приложение, если оно использует хак или использует частные методы api – lostInTransit