Logic para mover el campo de texto sobre el teclado al tocar

Ahora mismo, tengo un código básico para mover el campo de texto sobre el teclado cuando comienzas a editar. Sin embargo, el tamaño del campo de texto varía según el dispositivo y la orientación. Entonces, escribí una forma cruda de hacerlo, que no se mantiene consistentemente justo encima del teclado, sino que aumentará aún más cuando lo gire, por lo que no parece tan profesional como me gustaría.

l sentido básico de mi pregunta es si existe una lógica para obtener el tamaño del teclado en función del dispositivo y la orientación y usar ese valor automáticamente y con suerte más rápido que est

Si esa es la mejor manera, hágamelo saber. De lo contrario, proporcione información. Aquí está el código que tengo. (Esto es solo el código de desplazamiento hacia arriba, no el código de desplazamiento hacia abajo, para evitar ocupar demasiado espacio)

- (void)textFieldDidBeginEditing:(UITextField *)textField { 

    //Get Device Type
    NSString *deviceType = [[UIDevice currentDevice] model];

    //Animate Text Field
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:0.4];
    [UIView setAnimationBeginsFromCurrentState:YES];

    if ([deviceType isEqualToString:@"iPhone"]) {

        //Size For iPhone
        googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 210.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);

    } else if ([deviceType isEqualToString:@"iPad"]) {

        //Size for iPad
        googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 320.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);

    } else if ([deviceType isEqualToString:@"iPod touch"]) {

        //Size For iPod Touch
        googleBar.frame = CGRectMake(googleBar.frame.origin.x - 62.0, (googleBar.frame.origin.y - 210.0), googleBar.frame.size.width + 120.0, googleBar.frame.size.height);

    } 

    [UIView commitAnimations];

} 

Respuestas a la pregunta(6)

Su respuesta a la pregunta