我有一个自定义UIView
集作为我的UIViewController's
rootView。我以横向模式启动应用程序,但我在 rootView 的边界方面遇到了一些问题。经过一些调试后,我只是使用 Xcode 的控制台来检查发生了什么。该类ITCustomView's
是我的UIViewController's
rootView,它是一个UIView's
子类。所以我做了:
po self
结果:
ITCustomView: 0x15af30; frame = (20 0; 748 1024); transform = [0, -1, 1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x15b070>>
然后我做了:
po [self layer]
结果:
CALayer:0x15b070; position = CGPoint (394 512); bounds = CGRect (0 0; 1024 748); delegate = <ITCustomView: 0x15af30; frame = (20 0; 748 1024); transform = [0, -1, 1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x15b070>>; sublayers = (<CALayer: 0x15a390>, <CALayer: 0x15b2c0>, <CALayer: 0xce2f6a0>); transform = CATransform3D (0 -1 0 0; 1 0 0 0; 0 0 1 0; 0 0 0 1); backgroundColor = <CGColor 0x15b040> [<CGColorSpace 0x1356e0> (kCGColorSpaceDeviceRGB)] ( 0.818317 0.818317 0.818317 1 )
所以我的问题真的是:
在横向中不应该根据方向改变框架吗?
这些变换(方向变化)是否仅在图层上“可见”?
我应该开始使用而不是检查边界(以了解
UIView's
子类何时结束)吗?self.layer.bounds
self.frame
self.layer.bounds
由于可能的转换,总是使用 , 是否更安全(又名:最佳实践) ?
我觉得现在才注意到这种行为很奇怪(也有点为自己感到羞耻)。