好吧,这很奇怪。我以前从未遇到过这样的事情:
我正在像这样加载名为LoadVC
的UIViewController:
self.window.rootViewController = [[LoadVC alloc] init];
第一次执行此操作时,有问题的UIImageView是完美的,就像我在IB中设置的一样:
<UIImageView: 0x1ed689c0; frame = (0 -20; 320 480); clipsToBounds = YES; opaque = NO; autoresize = W+RM+H; layer = <CALayer: 0x1ed68a20>>
负y偏移是预期的。第二次加载此视图控制器时,图像视图变得疯狂:
<UIImageView: 0x1eda3160; frame = (0 -20; 320 436); clipsToBounds = YES; opaque = NO; autoresize = W+RM+H; layer = <CALayer: 0x1eda28d0>>
和dat吵架?
最佳答案
视图的框架不是静态的,可以根据其调整大小的遮罩进行更改以适合环境。首次加载时,它可能显示在清晰的屏幕上。第二次看起来像是导航栏占用了空间,所以它被垂直压缩了。除非您的意思是您在相同条件下从同一位置加载两次,并且每次获得的帧都不相同。
关于objective-c - 从 Nib 第二次加载UIViewController会弄乱UIImageView的帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13240027/