Pregunta

He calculado posiciones y desplazamientos en el papel. He escrito código y depurado que consigo resultados esperados. Sin embargo en el iPhone Simulator cosas se superponen por unos 15 píxeles.

Para seguir con mi depuración, lo que necesito saber exactamente donde los objetos de interfaz de usuario están en la pantalla.

En relación con la búsqueda de teclado emergente y cambiar el tamaño de un UITableView entre UISearchBar estática y dinámicamente añadió UITabBar (vista de tabla está incrustado en una de las pestañas). No, realmente No quiero utilizar cualquier valor codificado por rotación y diferentes tamaños de pantalla.

¿Cómo puedo averiguar esto?

- (void)keyboardWasShown:(NSNotification*)aNotification
{
if (self.keyboardShown)
    return;

// Get keyboard dimensions
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize kbSize = [aValue CGRectValue].size;
NSValue* endValue = [info objectForKey:UIKeyboardCenterEndUserInfoKey];
CGPoint endCenter = [endValue CGPointValue];

CGRect frame = myView.frame;
frame.size.height = endCenter.y - kbSize.height/2 - frame.origin.y;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.2];

myView.frame = frame;

[UIView commitAnimations];

self.keyboardShown = YES;
}

... código por si acaso hay errores obvios no puedo ver más ...

¿Fue útil?

Solución

Su mejor apuesta es probablemente convertPoint:toView: de UIView. Para averiguar dónde se encuentra una vista determinada, utilice:

CGPoint myPoint = [myView convertPoint:CGPointMake(0, 0) toView:((YourAppDelegate *)[[UIApplication sharedApplication] delegate]).window];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top