Позвольте мне поделиться примером, который легко воспроизводит это поведение, а также скриншотами.
Вот очень простая игровая площадка, на которой отображается большая квадратная красная кнопка, при нажатии которой отображается меню с двумя действиями.
Код: Выделить всё
//: A UIKit based Playground for presenting user interface
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override func loadView() {
let view = UIView()
view.backgroundColor = .white
// Create UIAction for each action in the displayModel
let actions: [UIAction] = [
UIAction(title: "Action 1", image: nil, attributes: .destructive
) { _ in
print("Action 1 tapped")
},
UIAction(title: "Action 2", image: nil, attributes: []
) { _ in
print("Action 2 tapped")
}
]
let button = UIButton(frame: .zero)
button.backgroundColor = .red
button.menu = UIMenu(title: "Menu", children: actions)
button.showsMenuAsPrimaryAction = true
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor),
button.widthAnchor.constraint(equalToConstant: 300),
button.heightAnchor.constraint(equalToConstant: 300)
])
self.view = view
}
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()
Затем, когда кнопка нажата, появляется меню с пузырьком под ним: пузырь под меню
Наконец, через некоторое время пузырь «всплывает» и исчезает: пузырь исчез
Если у кого-то из вас есть решение для меня, я был бы рад понять, что здесь происходит
Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-bubble
Мобильная версия