Swift中的Container View边界问题

时间:2015-08-19 13:44:48

标签: ios swift constraints containers

我正在编写一个可以获取容器视图高度和宽度的函数:

// container view's UIViewController
class SelectionView: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func getBounds -> (CGFloat,CGFloat){
        let x = self.view.bounds.width / 5
        let y = self.view.bounds.height / 15
        return x,y
    }

}

我写了一个按钮来调用这个getBounds()并且它运行良好,但当我把它放在viewDidLoad()函数中时

override func viewDidLoad() {
    super.viewDidLoad()
    getBounds()
}

getBounds()返回不同的高度和宽度,显然不是这个容器视图的界限。

我很确定我已将此类链接到容器视图!

2 个答案:

答案 0 :(得分:8)

viewDidLoad中未设置视图布局。因此,任何调整大小尚未完成,并且您的大小错误(可能与Storyboard / Xib中声明的相同)。

getBoundsviewWillLayoutSubviews中移动viewWillAppear,它将正常运行。请注意,这些方法不会只调用一次;)

答案 1 :(得分:1)

视图尚未在viewDidLoad中布局,您可能需要在稍后的方法或viewDidLayoutSubviews中捕获它。