我是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;
})
}
}
答案 0 :(得分:1)
您正在主视图顶部添加tableView,这意味着它将与主视图一起移动并将后面留空。
self.view.addSubview(self.slideOutMenu.tableView)
您需要做的是在slideOutMenu.tableView
上方的self.view上添加另一个视图,并将其用作内容视图。