好吧,这很奇怪。我以前从未遇到过这样的事情:

我正在像这样加载名为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/

10-17 00:52