我正在编写一个可以获取容器视图高度和宽度的函数:
// 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()返回不同的高度和宽度,显然不是这个容器视图的界限。
我很确定我已将此类链接到容器视图!
答案 0 :(得分:8)
viewDidLoad
中未设置视图布局。因此,任何调整大小尚未完成,并且您的大小错误(可能与Storyboard / Xib中声明的相同)。
在getBounds
或viewWillLayoutSubviews
中移动viewWillAppear
,它将正常运行。请注意,这些方法不会只调用一次;)
答案 1 :(得分:1)
视图尚未在viewDidLoad中布局,您可能需要在稍后的方法或viewDidLayoutSubviews中捕获它。