0

我在视图控制器中有一个 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

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

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

4

1 回答 1

0

解决了。

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

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

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

于 2016-05-30T10:02:03.513 回答