iOS应用中的滑出式菜单(swift)

时间:2015-02-05 19:54:59

标签: ios swift menu slide subview

我正在尝试快速构建自己的幻灯片菜单,但我遇到了一些麻烦。 现在,我编写了一个更改view.frame.origin.x的函数,以便我在右侧滑动视图。 现在,我在index:0处添加了一个子视图,我希望在我将主视图(内容)滑出时显示它。

let navView: NavigationViewController = self.storyboard?.instantiateViewControllerWithIdentifier("navView") as NavigationViewController

    view.insertSubview(navView.view, atIndex: 0)
    addChildViewController(navView)
    navView.didMoveToParentViewController(self)

当我点击菜单标识(左上角)时会发生这种情况:

    @IBAction func showMenu(sender: AnyObject) {
    println("showMenu")
    if !self.menuIsOpen{
    UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0, options: .CurveEaseInOut, animations: { () -> Void in
        self.view.frame.origin.x = 150
        }) { (isHappen: Bool) -> Void in
            if isHappen {
                println("OpenedUp!")
                self.menuIsOpen = true
            }
        }
    } else {
        UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0, options: .CurveEaseInOut, animations: { () -> Void in
            self.view.frame.origin.x = 0
            }) { (isHappen: Bool) -> Void in
                if isHappen {
                    println("Closed!")
                    self.menuIsOpen = false
                }
        }
    }
}

所以,现在,这有效,但我认为子视图与主视图的其余部分一起滑动。 如何使navigationView不隐藏?或者更好,留在那里(我的意思是与origin.x:0)

2 个答案:

答案 0 :(得分:0)

你有一个导航视图,与一个视图控制器(1)相关联,然后在该视图控制器内有滑出菜单视图控制器(2)(vc1.addSubview(vc2.view)?那么你可以保持视图控制器(1)的导航栏向上,视图控制器(2)将位于其中,因此它不会滑动视图控制器(1)的导航栏。

答案 1 :(得分:0)

我知道我有点晚了,但是如果其他人有同样的问题:我已经在我正在开发的应用程序上实现了类似的机制。为了实现它,我使用了iOS7中引入的自定义交互式转换。我建议查看以下链接:

希望有所帮助。