it-swarm.com.ru

клавиатура iOS7 Возврат/Готово/Поиск оттенка цвета

С новым оттенком iOS7 UIView становится довольно легко быстро оформить все приложение. Он даже меняет цвет текстовой каретки при редактировании UITextFields.

Однако нижняя правая кнопка «отклонить» на клавиатуре (может быть «Готово», «Поиск» и т.д.) Всегда синего цвета. Есть ли способ изменить это? Это выглядело бы действительно хорошо, если бы он соответствовал оттенку цвета остальной части приложения.

iOS7 UISearchBar keyboard

22
Tyson

С небольшим взломом, возможно, вы сможете добиться эффекта, который вы ищете. Но он не сможет пройти проверку приложения.

-(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)addColorToUIKeyboardButton{
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
        for (UIView *keyboard in [keyboardWindow subviews]) {
            for (UIView *view in [self subviewsOfView:keyboard withType:@"UIKBKeyplaneView"]) {
                UIView *newView = [[UIView alloc] initWithFrame:[(UIView *)[[self subviewsOfView:keyboard withType:@"UIKBKeyView"] lastObject] frame]];
                newView.frame = CGRectMake(newView.frame.Origin.x + 2, newView.frame.Origin.y + 1, newView.frame.size.width - 4, newView.frame.size.height -3);
                [newView setBackgroundColor:[UIColor greenColor]];
                newView.layer.cornerRadius = 4;
                [view insertSubview:newView belowSubview:((UIView *)[[self subviewsOfView:keyboard withType:@"UIKBKeyView"] lastObject])];

            }
        }
    }
}

Приложение, которое я использовал для декодирования иерархии представления, было: http://revealapp.com/

Конечный результат такой: Green Key

32
Ömer Karışman

Вы не можете изменить цвет оттенка кнопки, но вы можете установить keyboard Цвет оттенка с помощью UIKeyboardAppearance

image

Пример: yourTextField.keyboardAppearance = UIKeyboardAppearanceDark;

Вот очень хороший документ, предоставленный Apple, посмотрите здесь:

Управление клавиатурой

4
Nitin Gohel
let colors: [UIColor] = [.red, .blue, .green, .purple, .yellow, .orange, .brown]

if let window = UIApplication.shared.windows.first(where: { 
    $0.isType(string: "UIRemoteKeyboardWindow") 
}) {
    if let keyplaneView = window.subview(ofType: "UIKBKeyplaneView") {
        for (i, keyView) in keyplaneView.subviews.filter({
            $0.isType(string: "UIKBKeyView") 
        }).enumerated() {
            let view = UIView(frame: keyView.bounds)
            view.backgroundColor = colors[i].withAlphaComponent(0.5)
            keyView.addSubview(view)
        }
    }
}

Вот цветовая карта ключей в UIKBKeyplaneView

0
Callam