【问题标题】:Slide-out menu in iOS app (swift)iOS应用程序中的滑出菜单(swift)
【发布时间】:2015-04-05 19:58:58
【问题描述】:

我正在尝试快速构建自己的滑出式菜单,但遇到了一些麻烦。 现在,我编写了一个更改 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
                }
        }
    }
}

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

【问题讨论】:

    标签: ios swift menu slide subview


    【解决方案1】:

    您能否拥有一个与视图控制器 (1) 关联的导航视图,然后在该视图控制器 (vc1.addSubview(vc2.view) 中使用滑出菜单视图控制器 (2)?然后您可以保留视图控制器 (1) 的导航栏向上,视图控制器 (2) 将在其中,因此它不会滑动视图控制器 (1) 的导航栏。

    【讨论】:

      【解决方案2】:

      我知道我来晚了,但万一其他人也有同样的问题:我已经在我目前正在开发的应用上实现了类似的机制。为了实现它,我使用了 iOS7 中引入的自定义交互式过渡。我建议查看以下链接:

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-12
        • 1970-01-01
        • 2017-11-03
        • 1970-01-01
        • 2011-01-23
        相关资源
        最近更新 更多