Ios 视图大小不正确

Ios 视图大小不正确,ios,uiview,swift,constraints,Ios,Uiview,Swift,Constraints,我已经创建了一个带有自定义xib文件的ViewController。Insider我有一个精心放置的视图,名为holderView,具有适当的约束条件: 在控制器中,我有以下代码: override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) println(holderView.bounds) println(holderView.frame) } 我得到的是这个值,而不是真正

我已经创建了一个带有自定义xib文件的ViewController。Insider我有一个精心放置的视图,名为
holderView
,具有适当的约束条件:

在控制器中,我有以下代码:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    println(holderView.bounds)
    println(holderView.frame)
}
我得到的是这个值,而不是真正的值:

(0.0,0.0,320.0,568.0)
(0.0,0.0,320.0,568.0)

有人知道为什么会这样吗?我在一个普通的故事板中尝试了完全相同的代码和视图,效果很好。视图控制器由
PageViewController

自动布局加载和连接,会延迟绘制子视图的时间。查看此操作是否适用于获取视图尺寸:

override func viewDidLayoutSubviews() {
        println(self.holderView.frame.size)
    }

可以使用高度、宽度等。

正确的值应该是
(0,0225.0368.5)
我注意到在
视图中使用
视图。layoutifneed()
可以解决问题。这是正确答案吗?我不知道你为什么得到不正确的值。当我使用xib视图呈现视图控制器时,我在ViewDidDisplay中获得了正确的值。这个xib控制器是你应用程序的初始视图控制器吗?它是从PageViewController加载的,它是初始视图控制器。我刚刚遇到一个问题。应该调用多少次
viewdilayoutsubviews
?它被调用了大约50次,然后应用程序崩溃了。没关系,我正在向子视图添加一个视图,这就是为什么我得到了一个无限循环。我们可以将viewdide重命名为viewdidentreallyappearyet吗?:)我这么说是因为如果它真的出现了,我们会看到错误的画面,不是吗?当然,只是开玩笑。