使用SlideView进行iPad应用程序导航 - 更改UIView的大小?

时间:2014-08-13 12:52:26

标签: ios swift

我想创建一个幻灯片菜单,其正常宽度约为50像素,如果用户按下展开按钮,我还会显示该按钮的标签。

就像这个例子一样:

Example Menu

创建此类菜单的正确方法是什么?我虽然使用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上,我无法将内容视图移动到右侧。

提前致谢

1 个答案:

答案 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!)
        })

}