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()中完成了。
我在视图控制器中有一个 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()中完成了。