我想创建一个幻灯片菜单,其正常宽度约为50像素,如果用户按下展开按钮,我还会显示该按钮的标签。
就像这个例子一样:
创建此类菜单的正确方法是什么?我虽然使用2个视图并将contentview的大小设置为width-50pixels。
但是我无法在ViewDidLoad函数中更改我的UIView的框架。 (这是一个例子)
override func viewDidLoad() {
super.viewDidLoad()
self.view.frame = CGRect(x:50, y:0, width:974, height:768)
sidebarIsOpen = false
}
如果用户点击展开按钮
@IBAction func expandButtonClicked(sender : AnyObject) {
var x = self.sidebarIsOpen! ? 50 : 300
UIView.animateWithDuration(0.2, animations: {
self.view.frame = CGRect(x:x, y:0, width:300, height:768)
}, completion: { _ in
self.sidebarIsOpen = !(self.sidebarIsOpen!)
})
}
如果我再次点击按钮,一切都很好。但是在ViewDidLoad上,我无法将内容视图移动到右侧。
提前致谢
答案 0 :(得分:0)
创建2个视图,并在按钮单击时为“contentview”设置动画。
@IBOutlet weak var menuView: UIView!
@IBAction func toggleMenuButton(sender: UIBarButtonItem) {
var x = self.sidebarIsOpen! ? 50 : 200
UIView.animateWithDuration(0.2, animations: {
self.contentView.frame = CGRect(x:x, y:0, width:974, height:768)
}, completion: { _ in
self.sidebarIsOpen = !(self.sidebarIsOpen!)
})
}