Apple Maps样式菜单弹出窗口

时间:2016-11-26 17:54:21

标签: ios swift xcode segue

我想创建一个类似于地图设置菜单和苹果付费菜单的视图。我试图制作一个来自底部的segue,但却找不到如何让它比全屏小。

示例:

enter image description here

2 个答案:

答案 0 :(得分:1)

我最终创建了一个xib文件(刚刚调用" view")并将背景设置为透明。然后我将文件添加到我的ViewController并在需要时从底部动画(全部来自ViewController.swift)

这与显示主视图控制器文件

中菜单的按钮相关联
Observable.SelectedPeople

这与一个覆盖屏幕顶部区域的按钮相关联,当您点按它时关闭视图

@IBAction func showSettings() {
    let settingsViewVC = SettingsMenuController()

    self.addChildViewController(settingsViewVC)
    self.view.addSubview(settingsViewVC.view)
    settingsViewVC.didMove(toParentViewController: self)

    let height = view.frame.height
    let width  = view.frame.width
    settingsViewVC.view.frame = CGRect(x: 0, y: self.view.frame.maxY, width: width, height: height)

}

我确信有更好的方法可以使用故事板来实现这一点,但这可行

答案 1 :(得分:0)

生成这样的东西的最简单方法如下:

  • 使用所需的组件创建UIViewController
  • 根据需要设置约束
  • backgroundColor设置为透明(如果您希望父级背景暗淡,则设置为不透明度),以便查看控制器中的最顶层视图
  • 目前的视图控制器

通过这种方式,您将能够使用可见的父视图控制器显示您的控件 - 取决于您的操作,它可能是1-1可见性或其上的一点点阴影。此外,您将完全控制组件,因此图片中显示的cornerRadius不会出现问题。

我会在最顶层的视图中添加点按手势,这样你就可以解雇它。