Возможно ли перемещение UIPopovercontroller по экрану после его представления?
У меня есть небольшой вид в моем приложении, который может двигаться немного, и я хотел бы, чтобы UIPopoverController перемещался вместе с ним, не пересматривая UIPopoverController каждый раз, когда он перемещается. Это возможно?Можно ли перемещать UIPopoverController по экрану?
ответ
Начиная с iOS 9, «UIPopoverController устарел. Попутчики теперь реализованы как презентации UIViewController. Используйте модальный стиль презентации UIModalPresentationPopover и UIPopoverPresentationController».
Используйте следующее, чтобы представить popover. Вы можете изменить значения sourceRect и sourceView, но это не относится к поведению API.
DetailViewController *detailVC = self.detailViewController;
detailVC.preferredContentSize = CGSizeMake(420, 92);
detailVC.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame;
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:YES completion:^{
}];
Вместо этого я предлагаю хранить ссылку на контроллер представления, представленный с помощью popover, отклонить popover и повторно присутствовать.
DetailViewController *detailVC = self.detailViewController;
[self dismissViewControllerAnimated:NO completion:^{
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame; //Update frame
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:NO completion:^{
}];
}];
Я продолжаю сбивать голоса за это. Если вы собираетесь голосовать на этом принятом ответе, будьте полезны и оставьте комментарий. –
«Создайте свой собственный» - это не тот ответ, который я бы искал – Loukas
@ Loukas Надеюсь, вам понравится новый ответ лучше. Если UIPopoverPresentationController не предоставляет необходимые функции, вам придется воссоздать UIPopoverController, поскольку API не очень гибкий. –
Нет, вы не можете. Это не метод для этого.
pover presentPopoverFromRect:
упоминалось в комментариях, но обратите внимание на
настоящее
вы не можете представить без перерисовки.
Пейзаж смотреть документ Пятьдесят на iPad. У них есть popover, который содержит текстовое поле. Попёр, анимированный над клавиатурой, и когда клавиатура уволена, она возвращается в исходное положение. Является ли сборка или разработчик энтузиазмом? – Daniel
Когда появляется клавиатура, по умолчанию SDK будет перемещать popover выше, чтобы разместить клавиатуру. Когда клавиатура будет уволена, popover вернется в исходное местоположение. Все это построено поведением. – Andrew
Да, это правильно. Я забыл, что было с моим комментарием, было слишком давно. – Daniel
Вы можете отслеживать, как пользователи касаются экрана, и используйте presentPopoverFromRect:
, чтобы просмотреть посетителя.
Это стоит попробовать, но я полагаю, что это может быть немного дорого. Я уверен, что, когда вы отклоняете его и пересматриваете, есть много ресурсов, которые происходят, которые могут быть довольно облагаются системой. –
Это правда, но в этом случае хорошее управление памятью вступает в игру. Особенно с iPad, у вас есть немного, но больше памяти для игры. – WrightsCS
Вы можете повторно позвонить presentPopoverFromRect.
См http://developer.apple.com/library/ios/#qa/qa1694/_index.html
- 1. Можно ли перемещать компоненты по экрану с помощью стандартного андроида?
- 2. Как перемещать выделение по экрану
- 3. Как перемещать изображение по экрану на Android
- 4. Как перемещать текстовый символ по экрану в C++
- 5. Как плавно перемещать изображение по экрану с помощью чистого javascript
- 6. Как перемещать мышь плавно по всему экрану с помощью java?
- 7. Можно ли перемещать точки UIPageControl
- 8. Можно ли перемещать фоновое изображение?
- 9. Можно ли отслеживать указатель мыши по всему экрану в Python?
- 10. Как перемещать содержимое страницы медленно вниз по экрану?
- 11. Я не могу рисовать объекты и перемещать их по экрану
- 12. Как перемещать изображение по экрану с помощью DragAndDrop
- 13. Можно вручную повернуть представление UIPopoverController?
- 14. Переместить небольшое изображение по экрану
- 15. SWT: Можно ли одновременно перемещать несколько виджетов?
- 16. UIPopoverController over UIPopoverController
- 17. Можно ли перемещать файл снизу вверх? [C]
- 18. Можно ли перемещать путь/файл строки strings.xml?
- 19. Можно ли перемещать и перемещать строку таблицы влево?
- 20. Проведите по экрану UITableViewCell3
- 21. Перемещение DIV по экрану
- 22. Можно ли прокручивать (перемещать) pdf программно?
- 23. C# Excel VSTO - Можно ли перемещать выделение?
- 24. Можно ли циклически перемещать метки в vim?
- 25. Обнаружение проведите по экрану
- 26. cmd: список идет по экрану
- 27. Как перетаскивать изображения по экрану
- 28. Рисование по экрану в Java
- 29. UIPopoverController
- 30. Проведите по экрану ScrollView
Не '[поповер presentPopoverFromRect:]' работает для вас? –
Вопрос в том, может ли он перемещать popOver после его представления – Sid
Я не думаю, что это позиция может быть напрямую изменена. Однако, если вы назовете presentPopoverFromRect на него, не отпуская его, он должен «переместиться». – Anna