Как создать всплывающее меню?IOS

Программируем под IOS
Ответить
Anonymous
 Как создать всплывающее меню?

Сообщение Anonymous »

Я хочу создать меню настроек, как в приложении Apple Books. Я думаю, что лучший способ выполнить эту задачу — использовать PopoverContentController со StackView внутри. Но у меня есть несколько проблем.
первая проблема:
Если я использую default PopoverContentController, я вижу стрелку, но на моем изображении ее нет. Я использую эту строку, чтобы удалить направление стрелки:

Код: Выделить всё

popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)
Но в этом случае я не вижу, чтобы PopoverContentController сглаживал анимацию открытия, потому что я удалил стрелку. Как это исправить?
вторая проблема:
Чтобы получить меню как в В примере изображения мне нужно удалить фон, чтобы увидеть расстояние между элементами. Я пытаюсь использовать этот код

Код: Выделить всё

popoverPresentationController.backgroundColor = .celar
или это:

Код: Выделить всё

view.backgroundColor = .celar
Мне это не помогает. Я вижу размытие фона. Как это исправить?
полный код:

Код: Выделить всё

 let popoverContentController = MenuVC()
popoverContentController.modalPresentationStyle = .popover

let popoverPresentationController = popoverContentController.popoverPresentationController
popoverPresentationController?.permittedArrowDirections = .up
popoverPresentationController?.sourceView = self.view
popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)

popoverContentController.preferredContentSize = CGSize(width: 250, height: 250)
popoverPresentationController?.delegate = self

popoverPresentationController?.sourceRect = CGRect(
x: self.rightStackView.frame.origin.x + self.rightStackView.arrangedSubviews[0].frame.origin.x + (rightBarButtonWidth/2),
y: self.rightStackView.frame.origin.y + self.rightStackView.arrangedSubviews[0].frame.origin.y + (rightBarButtonHeight),
width: 0,
height: 0)

present(popoverContentController, animated: true, completion: nil)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/787 ... pover-menu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»