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

时间:2016-05-30 09:30:54

标签: ios cgsize

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

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

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

我预计muCALyer可以完全填满myUIView。 但是,请参考ttp://imgur.com/V4AN1Uy(对不起,请手动打开此链接,因为我不能发布超过2个链接), myCALayer(灰色范围)超出了myUIView(绿线)。

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

  

尺寸:CGSize *       - 宽度:500.0       - 身高:380.0

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

有没有办法获得实际的宽度/高度?谢谢!

1 个答案:

答案 0 :(得分:0)

它已经解决了。

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

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

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