iPad - перерисовывает направление стрелки видимого UIPopOverController - PullRequest
0 голосов
/ 06 октября 2010

У меня есть объект, который рисуется около первой трети экрана. Представьте, что между верхней частью объекта (например, изображением) и верхней частью экрана есть 300 пикселей.

Когда я показываю поповер, скажем, размером 200x200 пикселей и указываю направление стрелки, как любое, поповер может появиться над объектом, то есть между объектом и верхней частью экрана.

Если всплывающее окно по какой-либо причине загружает другой вид и размер его превышает размер доступного пространства между объектом и верхней частью экрана, он не сможет поместиться там. iOS решает эту проблему, запрещает поповеру изменять размеры более чем возможно. В результате содержимое усекается, и, возможно, всплывающее окно немного переместится, а стрелка укажет в никуда.

Есть ли способ сделать увеличенный поповер, чтобы пересчитать лучшее направление стрелки?

спасибо.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Вы можете рассчитать размер необходимого контента future (contentView), сравнить его с вашим порогом и задать направление стрелки. вам может потребоваться поэкспериментировать с вашим порогом, поскольку размер представления контента не соответствует всей высоте всплывающего окна.

int popoverArrowDirection 15;//any
int threshold = 300;        
        if(viewThatWillbeInserted.frame.size.height>threshold)popoverArrowDirection = 1;//up


[myPopoverController presentPopoverFromBarButtonItem:myBarButton permittedArrowDirections:popoverArrowDirection animated:YES];

Если вы не можете знать эту высоту раньше, у вас не так много вариантов.

Ограничения всплывающих окон заставили меня смоделировать всплывающее окно как Custom ViewController (например, всплывающее окно для страниц, которое вы видите, когда скользите по страницам в ibook; это не настоящий компонент всплывающего окна). Это означало бы, что если бы у вас была стрелка вниз и вы открыли новый, более крупный вид, вы могли бы даже анимировать вид, вращающийся вокруг источника наконечника стрелки или любой другой глупой анимации.

Я делал это только в корпоративных приложениях, и не уверен, что это безопасно для магазина приложений!

0 голосов
/ 06 октября 2010

Что произойдет, если вы отклоните поповер и затем повторно представите его после изменения размера контента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...