bounds.size 无法获取正确的实时大小

bounds.size cannot get the correct real time size

我在视图控制器中有一个 UIView 对象,我想将 CALayer 对象添加到 UIView 对象中。 UIView 对象的自动布局配置如下所示。 (抱歉,我还不能嵌入 pix,请点击 links 代替) Link 1 Link 2(灰色矩形是 UIView 对象)

我设置了CALayer对象(myCAlayer)的大小,并通过以下代码将其添加到UIView对象(myUIView)。

myCALayer.frame = myUIview.layer.bounds
myUIview.layer.addSublayer(myCALayer)

我希望 muCALyer 可以准确填充 myUIView。 但是,请参考 ttp://imgur.com/V4AN1Uy (抱歉,请手动打开此 link 因为我不能 post 超过 2 links), myCALayer(灰色范围)超出了 myUIView(绿线)。

通过po myUIview.layer.bounds,我发现CGSize是:

size : CGSize* - width : 500.0 - height : 380.0

width=500 似乎是从 600-2*50 计算的(600 是自动布局下视图控制器的默认宽度),而不是应用程序时 myUIView 的实际宽度 运行。实际的应该窄得多。还有,身高也有同样的问题。

有什么办法可以得到实际的width/height?谢谢!

解决了

myCALayer.frame = myUIview.layer.bounds
myUIview.layer.addSublayer(myCALayer)

问题在于上面的代码是在 viewDidLoad() 方法中。 然而,它似乎应该被移动到 viewDidAppear()。现在问题已解决。

可能是因为布局在viewDidLoad()中还没有完成,在viewDidAppear()中完成了。