Wie man ein Popover von einer UITableViewCell mit UIPopoverArrowDirectionRight oder UIPopoverArrowDirectionLeft korrekt darstellt
Ich immer versuchen, eine popover aus einer Zelle in einer tableView diese Weise:
[myPopover presentPopoverFromRect:cell.frame inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
aber ich kann UIPopoverArrowDirectionRight oder Links, da, abhängig von der position
der ipad (hochformat oder Querformat), die popover erscheint woanders.
Bin ich zu präsentieren, das popover für den richtigen Weg?
PS: die Tabelle anzeigen, wird in der Detailansicht eines splitView.
InformationsquelleAutor der Frage Omer | 2010-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die einfache Lösung, die funktioniert gut für mich
InformationsquelleAutor der Antwort
Du bist immer der Rahmen von der Zelle über die rectForRowAtIndexPath Methode. Dies ist korrekt. Aber der tableview ist wahrscheinlich eine Untersicht eines größeren iPad-Ansicht, damit, wenn das popover erhält die Koordinaten die er denkt, sind Sie in der größeren Ansicht. Dies ist der Grund, warum das popover erscheint an der falschen Stelle.
Beispiel, die CGRect für die Zeile (0,40,320,44). Anstelle des popover-targeting, dass der Rahmen auf der tableview es stattdessen Ziele, die den Rahmen auf Ihrem Haupt-Ansicht.
Löste ich dieses problem durch die Umwandlung der frame von den relativen Koordinaten der Tabelle, die Koordinaten in meine größere Ansicht.
code:
Hoffe, das hilft, andere auf der Suche für dieses Problem.
InformationsquelleAutor der Antwort John
Stieß ich auf dieses problem heute, und ich habe eine einfachere Lösung.
Bei der Instanziierung des popover, müssen Sie für die Zelle den Inhalt anzeigen:
InformationsquelleAutor der Antwort antalkerekes
Swift, zwischen den oben genannten Antworten, dies funktioniert bei mir auf einem iPad in jeder Ausrichtung:
InformationsquelleAutor der Antwort Fred Faust
Pop ein popover neben dem Zubehör u können diesen code verwenden 🙂
Ich benutze dies für mehr für fortgeschrittene:
Können für UIActionSheet oder UIPopoverController.
Hier ist mein code:
Getestet in iOS 4.3 auf 5.1
Am besten, um die Verwendung als benutzerdefinierte Methode:
Und Methode nicht code:
InformationsquelleAutor der Antwort Pion
Habe ich dieses problem auch. Eine Lösung für mich war einfach ändern Sie die Breite des Rechteck zurückgegeben
CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath
:Dadurch erstellen Sie ein Rechteck zentriert in der Zelle. Dieser Weg, der popover hat mehr Chancen findind ein guter Ort, um sich zu positionieren.
InformationsquelleAutor der Antwort okcompute
Den cell Rahmen wird so etwas wie 0,0,Breite,Größe, ich glaube nicht, dass es seine X-und Y relativ zu der tableView..., die Sie verwenden möchten - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath für diese, daraufhin sollten Sie den richtigen Rahmen für die Zelle relativ zu den tableView...hier ist ein link UITAbleView ref
InformationsquelleAutor der Antwort Daniel
Ich hatte das gleiche problem, hier ist der workaround, den ich verwendet :
hier ein Beispiel-code
In MyCustomTableViewCell.m :
sowie die MyDetailViewController.m :
PS : natürlich, die 'action' nicht haben eine IBAction und der Rahmen aus, wo der popover stammt nicht zu einem UIButton - eine einzige UIView wäre gut 🙂
InformationsquelleAutor der Antwort Vinzzz
Dies ist, wie ich es Tat, und funktioniert einwandfrei.
InformationsquelleAutor der Antwort i.jameelkhan
Dieses arbeitete auch für mich:
InformationsquelleAutor der Antwort Javier Calatrava Llavería