Frage

Ich habe Positionen und Offsets auf Papier. Ich habe Code geschrieben und auf Fehler, dass ich erwartete Ergebnisse. Jedoch auf dem iPhone Simulator Dinge sind überlappende um etwa 15 Pixel.

Um mit meinem Debugging geht, muß ich wissen, wo genau UI-Objekte auf dem Bildschirm sind.

Bezug zu Popup-Suche Tastatur und eine UITableView zwischen statischen UISearchBar Ändern der Größe und dynamisch hinzugefügt UITabBar (Tabellenansicht in einer der Registerkarten eingebettet ist). Nein, ich wirklich will keine fest einprogrammierte Werte verwenden, durch Rotation und unterschiedliche Bildschirmgrößen.

Wie kann ich das herausfinden?

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

... Code nur für den Fall da ist offensichtlich Fehler kann ich nicht mehr sehen ...

War es hilfreich?

Lösung

Ihre beste Wette ist wahrscheinlich UIView der convertPoint:toView:. Um herauszufinden, wo eine bestimmte Ansicht befindet, verwenden Sie:

CGPoint myPoint = [myView convertPoint:CGPointMake(0, 0) toView:((YourAppDelegate *)[[UIApplication sharedApplication] delegate]).window];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top