2010-08-09 7 views
2

Je montre un popover chaque fois qu'une cellule de ma table est touchée, avec la flèche pointant vers la cellule, et toujours pointant vers la gauche ou la droite, pas vers le haut ou vers le bas.Flèche de Popover pour suivre un objet dans un scrollview

La vue de la table est définie comme passthroughView du popover, de sorte que l'utilisateur peut sélectionner une cellule différente pendant que le popover est encore ouvert, ce qui entraîne un nouveau popover pour la cellule sélectionnée. Cependant, cela signifie que l'utilisateur peut également faire défiler la table pendant que le survol est ouvert. Dans ce cas, comment puis-je faire en sorte que la flèche du popover continue à pointer sur la cellule sélectionnée?

Malheureusement, UITableView est, n'est pas contenu dans un UIScrollView, donc je ne peux pas simplement présenter le popover dans le système de coordonnées de tableview. De plus, les cellules de table ne semblent pas avoir de cadre défini pour présenter le popover. Je ne vois aucun moyen dans l'API de déplacer la flèche de la popover manuellement.

Des idées? Merci.

Répondre

10

Il s'avère, vous pouvez utiliser presentPopoverFromRect:InView: même lorsque le popover a déjà été présenté; cela amènera le contrôleur Popover à recalculer sa position de flèche.

+3

Ceci est documenté dans Q & R technique QA1694: http://developer.apple.com/iphone/library/qa/qa2010/qa1694.html –

+1

Juste testé sur iOS 8 et cela ne fonctionne plus (plus). Appeler le presentPopoverFromRect: InView: ... ne met pas à jour la position de la flèche de UIPopoverController une fois qu'elle a été ajoutée à l'écran. – Yannick

Questions connexes