如何在主要UIView后面添加一个UIView用于Swift中的滑出菜单?

时间:2015-12-21 21:38:34

标签: ios iphone swift uitableview uiview

我是swift的新手,我正在尝试制作一个基本的幻灯片菜单,而不使用API​​来练习动画并在superview中覆盖视图。我也鄙视界面构建器,所以我正在寻找100%的程序化解决方案。

我用导航栏创建了一个基本视图,我希望主视图向右滑动,显示一个TableViewController。我有这个功能,我用来将主视图向右滑动,但我得到的只是一个黑屏,TableViewController应该是。

有人能指出我正确的方向吗?

func animateLeftPanel(shouldExpand : Bool){

    let frameWidth = self.view.frame.width;
    let frameHeight = self.view.frame.height;
    slideOutMenu.tableView.frame = CGRect(x: 0, y: 0, width: frameWidth, height: frameHeight);

    if (shouldExpand) {

        UIView.animateWithDuration(0.3, animations: {() in

            self.view.addSubview(self.slideOutMenu.tableView);
            self.view.sendSubviewToBack(self.slideOutMenu.tableView)
            self.view.center.x += frameWidth - 50;
            self.menuShouldSlide = false;

        })

    } else {

        UIView.animateWithDuration(0.3, animations: {() in

            self.slideOutMenu.tableView.removeFromSuperview();
            self.view.center.x -= frameWidth - 50.0;
            self.menuShouldSlide = true;
        })

    }
}

1 个答案:

答案 0 :(得分:1)

您正在主视图顶部添加tableView,这意味着它将与主视图一起移动并将后面留空。

self.view.addSubview(self.slideOutMenu.tableView)

您需要做的是在slideOutMenu.tableView上方的self.view上添加另一个视图,并将其用作内容视图。