Con el nuevo iOS7 UIView matiz de color se hace muy fácil el tema de toda una aplicación de forma rápida. Incluso cambia el color del texto con el símbolo de intercalación cuando la edición de UITextFields.

Sin embargo, el teclado de la parte inferior derecha de la ‘despedir’ botón (que se puede Hacer, Búsqueda, etc) es siempre azul. ¿Hay alguna forma de cambiar esto? Se vería muy bien si coincidía con el matiz de color del resto de la aplicación.

iOS7 Teclado de Devolución/Hecho/Búsqueda de tinte de color

InformationsquelleAutor Tyson | 2013-10-19

3 Comentarios

  1. 32

    Con un poco de hack tal vez se puede lograr el efecto que buscas. Pero podría no ser capaz de pasar a la aplicación de la revisión.

    -(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])];
    }
    }
    }
    }

    La aplicación que se utiliza para decodificar el punto de vista de la jerarquía fue : http://revealapp.com/

    El resultado final es este: iOS7 Teclado de Devolución/Hecho/Búsqueda de tinte de color

    • Ah, he descargado y probado Revelan justo después de que me hicieron esta pregunta, para experimentar con exactamente lo que hizo anteriormente. Nadie a probado esto en una aplicación publicada todavía? Cualquier comentario sobre el proceso de revisión?
    • Creo que lo haría probablemente no el examen. Ver esta pregunta aquí : http://stackoverflow.com/questions/4202817/can-i-tint-black-a-uikeyboard-if-so-how Alternativamente, usted puede tratar de poner un color detrás del teclado, generalmente de color.
    • También yo estaría muy contento si usted puede votar mi respuesta. Soy nuevo y soy muy poca rep, me impide la publicación de imágenes directas, votación, etc. Gracias
    • No probs, hecho. Nota para el futuro ref habría upvoted de inmediato si usted tenía de contestada la pregunta completamente. Básicamente, su respuesta fue sólo la mitad de la solución (la búsqueda de la ‘Hecho/Búsqueda» clave de UIView). La superposición de agregar en realidad no coincida con la clave. He encontrado la misma cosa a través de Revelar. El principal problema con este enfoque es la clase privada UIKBKeyView dibuja toda la cosa, y no parece exponer alguna forma de cambiar el color de la espalda. Para ser una respuesta completa esperaría que incluyen código que cambia la clave de coincidencia de color de los límites actuales de la clave.
    • Aún así, su respuesta es mejor que la otra hablando de oscuridad/luz de los teclados, así que gracias! (no estoy seguro de que upvoted que uno, que no era yo).
    • La adición de un color ver en la parte de atrás de la clave de actuar como un tinte. con algunos de ensayo y error se puede dibujar un rectángulo redondeado para que coincida con la forma del botón. Pero creo que debe ser un botón gris en lugar de azul uno para tener la mirada. Gracias por la upvote!
    • Sólo he ido por delante y la mejora de la respuesta.
    • Cosas bonitas! Hizo que el teclado tiene un botón gris para empezar? O el azul? Sin un oficial de la API, esto sin duda puede ser marcado como el aceptado contestar ahora.
    • Había un botón gris. Con un botón azul que no tiene el color deseado. Saludos
    • es alguien capaz de pasar la revisión con un color personalizado, el botón hecho?

  2. 4

    No se puede cambiar el botón de tinte de color, pero puede establecer keyboard Matiz de color mediante el uso de UIKeyboardAppearance

    iOS7 Teclado de Devolución/Hecho/Búsqueda de tinte de color

    Ejemplo: yourTextField.keyboardAppearance = UIKeyboardAppearanceDark;

    Aquí es un muy buen documento proporcionado por Apple, echa un vistazo aquí:

    La gestión del Teclado

    • Gracias, pero yo ya soy consciente de la oscuridad/luz de los teclados. Mi pregunta era específicamente sobre el ‘despedir’ botón en el teclado. Esto parece coincidir con apple por defecto del iOS7 matiz de color, así que estaba esperando que también fue capaz de ser cambiado – no parece pesar.
    • Ciertamente, usted puede cambiar el color del matiz de Teclado de la ventana. No documentados y usted tendría que encontrar en la vista de jerarquía. Es muy ligero, parche diría yo.
  3. 0
    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)
    }
    }
    }

    Aquí está un mapa de color de las teclas en el UIKBKeyplaneView:

    iOS7 Teclado de Devolución/Hecho/Búsqueda de tinte de color

Dejar respuesta

Please enter your comment!
Please enter your name here