Я делаю всплывающий контроллер представления презентации, где мне нужно использовать несколько направлений стрелок (up
и down
).Для того, чтобы иметь несколько permittedArrowDirections
, я следовал Установить несколько направлений стрелки на UIPopoverController в Swift .Также я подправил цвет фона всплывающего окна так, чтобы стрелка сливалась с видом затемнения фона.
Проблема в том, что мне нужно предпочесть UIPopoverArrowDirection.up
почти для всех случаев, но для случаев, когда естьнедостаточно места прямо под исходным представлением, только тогда следует использовать UIPopoverArrowDirection.down
.Но я не могу найти, чтобы понять это.Фрагмент кода:
let presentationController = .....
presentationController.sourceView = sourceView
presentationController.sourceRect = sourceView.bounds
// changing the array order doesn't help
presentationController.permittedArrowDirections = [.up, .down]
presentationController.backgroundColor = UIColor(white: 0, alpha: 0)
self.present(controller, animated: true)
Чтобы прояснить ситуацию, я присоединяю токовый выход: ![pop over preferred arrow direction](https://i.stack.imgur.com/WACPN.png)
Исходный код демонстрацииПопытка может быть найдена здесь , если кому-то нужно следовать.