UIPopoverController Якорная позиция - PullRequest
1 голос
/ 30 марта 2011

У меня есть UIPopOverController, для которого контроллером контента является UINavigationController.Я изменяю размер поповера в соответствии с размером содержимого контроллера, вставленного в него.Изначально я представляю поповер, используя метод presentPopoverFromRect:inView:permittedArrowDirections:animated:.Позиция привязки указывает на центр прямоугольника, который я передал в качестве аргумента.Если я помещаю контроллер (размер содержимого которого маленький) в navigationController, всплывающее окно сжимается снизу и перемещается над прямоугольником, о котором я упоминал ранее.

Я пытался каждый раз представлять поповер (для push / pop), позиция привязки остается @ той же самой точкой, но анимация затрагивается, выглядит не очень хорошо.

что нужно сделать, чтобыположение якоря остается неизменным независимо от изменения размера поповера?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

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

например,

[self.myPopOver presentPopoverFromRect:rectOrigin inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

Надеюсь, что он работает в вашемкейс

0 голосов
/ 18 января 2012

Изменить кадр после представления UIPopoverController:

 [popupController presentPopoverFromRect:btn.frame inView:self.view permittedArrowDirections:0 animated:YES];

CGRect popupFrame = popupController.contentViewController.view.superview.superview.superview.frame;
popupFrame.origin.y = btn.frame.origin.y + btn.frame.size.height+75;

popupController.contentViewController.view.superview.superview.superview.frame = popupFrame;
...