我正在自定义 UIView Canvas 上做一些绘图,而不是在 View 底部有一组按钮来允许用户选择形状,我想让用户做一个长按手势,然后会出现一个弹出式菜单,其中包含可供选择的不同形状。我在 xCode 中没有看到类似的东西,尽管我假设在 iOS 中有类似的东西。我不希望在电池电量不足和通知时出现警报弹出窗口。
我研究过使用 UIPopoverController,但我对我读过的其他一些 Stack Overflow 问题以及 Apple 提供的文档感到有点困惑。
最佳答案
我描述了实现 float 菜单的步骤,如上图所示:
- 创建从
barButtonItem
到类型为“Present as Popover”的MenuViewCobtroller
的segue
在
MenuViewController
中覆盖preferredContentSize
为:override var preferredContentSize : CGSize { get { return CGSize(width: 88 , height: 176) } set { super.preferredContentSize = newValue } }
在我的例子中,我将返回宽度为 100 和大小为 200 的 CGSize
。您可以设置这些值以正确适合您的 float 菜单内容。
4. 在初始/源 View Controller 中,在 prepare(for segue: sender)
方法中将 self
设置为 popoverPresentationController
委托(delegate):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ShowMenuSegue" {
if let tvc = segue.destination as? MenuViewController
{
tvc.delegate = self
if let ppc = tvc.popoverPresentationController
{
ppc.delegate = self
}
}
}
}
源 View Controller 必须遵守 UIPopoverPresentationControllerDelegate
并实现以下方法:
extension ViewController: UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
}
就是这样。你有 float 菜单。希望这会很有用。
关于ios - Swift:如何在 iOS 中创建弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233977/