我在视图控制器中有一个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的实际宽度。实际的应该更窄。此外,高度也有同样的问题。
有没有办法获得实际的宽度/高度?谢谢!
答案 0 :(得分:0)
它已经解决了。
myCALayer.frame = myUIview.layer.bounds
myUIview.layer.addSublayer(myCALayer)
问题在于上面的代码在viewDidLoad()方法中。 但是它似乎应该移动到viewDidAppear()。现在问题已解决。
可能是因为viewDidLoad()中的布局还没有完成,但是在viewDidAppear()中完成了。