Pergunta

Eu calculei posições e compensações no papel. Escrevi código e depurei que recebo resultados esperados. No entanto No simulador de iPhone, as coisas estão sobrepostas por cerca de 15 pixels.

Para continuar com minha depuração, preciso saber onde estão exatamente os objetos da interface do usuário na tela.

Relacionado ao teclado de pesquisa pop -up e redimensionamento de uma visão de uite entre a barra de pesquisa estática e o uitabbar adicionado dinamicamente (a exibição da tabela é incorporada em uma das guias). Não, eu realmente Não quero usar nenhum valores codificados rotação devida e tamanhos de tela diferentes.

Como posso descobrir isso?

- (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 apenas para o caso de não haver insetos óbvios que não consigo ver ...

Foi útil?

Solução

Sua melhor aposta é provavelmente o Uiview's convertPoint:toView:. Para descobrir onde uma determinada visão está localizada, use:

CGPoint myPoint = [myView convertPoint:CGPointMake(0, 0) toView:((YourAppDelegate *)[[UIApplication sharedApplication] delegate]).window];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top