UIViewController的self.view.frame / bounds在viewDidLoad和viewWillAppear iOS8之间切换

时间:2015-06-02 14:47:53

标签: ios objective-c uiview uiviewcontroller viewwillappear

我的iPhone应用程序中有一个非常奇怪的问题。

我有两个%// Part 1. [ps,~] = dpsimplify([x(:),y(:)], 1e-3); %// adjust "tol" above noise level xs = ps(:,1); ys = ps(:,2); %// Part 2 I = 1:numel(xs)-2; sgnA = sign( ... xs(I+0).*ys(I+1) ... + xs(I+1).*ys(I+2) ... + xs(I+2).*ys(I+0) ... - xs(I+0).*ys(I+2) ... - xs(I+1).*ys(I+0) ... - xs(I+2).*ys(I+1) ... ); k_inflex = find(2 == abs(diff(sgnA))); x_inflex = xs(k_inflex); y_inflex = ys(k_inflex); 子类UIViewControllerA

B UIViewController B内的方法调用bUIViewController(我们称之为Aa 1}})。 但是当显示b时,b的“根”视图的框架和边界在viewDidLoadviewWillAppear的调用之间发生了神奇的变化。 我不知道,为什么会这样。据我所知,我所有的其他观点都没有这个问题。

这些是框架和界限:

viewDidLoad中的

self.view.frame: {0, 0}, {375, 667}

self.view.bounds: {0, 0}, {375, 667}
viewWillAppear:中的

self.view.frame: {0, 64}, {375, 554}

self.view.bounds: {0, 0}, {375, 554}

我做了一个截图来证明这个问题。 黄色区域是self.view的{​​{1}}。红色和绿色是b的子视图。他们只是我的布局。我认为它们对self.view框架或边界没有任何影响。

有没有人知道造成这个问题的原因是什么?

UIViews in b

1 个答案:

答案 0 :(得分:0)

好的,经过数小时(字面意思!)的调试后,我发现了我的错误:我忘了在我的自定义init方法中调用self = [super init];。这引起了一些奇怪的行为。

感谢您的有益评论!