2010-11-20 15 views
0

Ich habe einen UITabBarController in einem UIPopoverController, die ich nur von einem UIBarButtonItem anzeigen. Wenn es angezeigt wird, möchte ich, dass das Popover die maximal zulässige vertikale Höhe einnimmt. Es funktioniert gut, wenn ich tippe, um es anzuzeigen, dann zu entlassen und dann zu drehen. Wenn ich jedoch das Popover im Querformat anzeigen lasse und dann zum Hochformat rotiere, füllt es nicht mehr den gesamten vertikalen Abstand. Ich habe die content size Eigenschaft des Tab-Bar-Controllers auf 320 von 1000 eingestellt, und ich habe sogar versucht, dies jedes Mal neu einzustellen, wenn sich das Gerät dreht. Schlimmer noch, wenn der Benutzer die Suchleiste aktiviert, schrumpft der Popover extrem klein und bleibt so lange, bis die App neu gestartet wird.Popover-Größenänderung unregelmäßig

http://cl.ly/3JdC zu http://cl.ly/3JdC

Auch http://cl.ly/3JVF

Wie kann ich das verhindern und haben die popover immer die maximale vertikale Größe füllen?

Antwort

1

Ich habe gerade das gleiche Problem und fand heraus, dass es geschieht nur, wenn ich die UIPopoverController mit der Methode vorstellen:

- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated 

aber es funktioniert gut, wenn ich benutze:

- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated 

Leider UIBarButtonItem hat kein Frame-Rect, das Sie mit dieser letzten Methode verwenden können, so dass mein Fix darin bestand, den UIToolbar Frame zu verwenden und frame.origin.x und frame.size.width entsprechend zu ändern, damit das Popover angezeigt wird an der richtigen Stelle neben dem UIBarButtonItem.

Hoffentlich wird Apple dies in den nächsten Versionen von iOS beheben.

Grüße

+2

Ich habe 'self.contentSizeForViewInPopover = CGSizeMake (0, 0); self.contentSizeForViewInPopover = CGSizeMake (320, 1000); 'in die' viewDidAppear: 'Methode und das hat auch funktioniert. Obwohl es sich anfühlt wie ein Hack. – axiixc

Verwandte Themen