gpt4 book ai didi

uiview - 导航后如何移动某些UIView?

转载 作者:行者123 更新时间:2023-12-04 03:05:59 25 4
gpt4 key购买 nike

在我的某些应用程序设计中或仅对于某些UIViews,在navigationController的pushViewController之后,我的新 View 将从状态栏的高度移出窗口。结果,我将把这个代码 stub 放在viewDidLoad方法中。

CGRect  frameAt = [self.view frame];
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
frameAt.origin.y += statusBarFrame.size.height;
[self.view setFrame: frameAt];

对我来说,这不是XCode和Interface Builder的意图,所以我怀疑在 View 设计期间我在SDK上做了一些根本性的错误。此外,在极少数情况下,我不必改变看法,我真的不知道两种设计方法的区别。

还要注意,大多数时候,我会尝试使用IB设计 View ,并进行一些较小的自定义。

没有其他人遇到这种情况,并且知道在没有这样的代码 stub 的情况下如何解决吗?

最佳答案

我已经使用Apple's NavBar sample code尝试重现此问题。

applicationDidFinishLaunching最初是这样实现的:

[window addSubview:navigationController.view];
[window makeKeyAndVisible];

如果我将其更改为:
UIViewController *shellController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[shellController.view addSubview:navigationController.view];
[window addSubview:shellController.view];
[window makeKeyAndVisible];

然后我出现了差距。

但是,如果我只这样做:
UIView *shell = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[shell addSubview:navigationController.view];
[window addSubview:shell];
[window makeKeyAndVisible];

然后,一切看起来都很正常。

因此,我想每个 View Controller (如果它是根 View Controller )都会偏移其 View 。但是导航 Controller 会覆盖此行为以偏移其 View ,而不管它是否是根 View Controller 。因此,我想说您正在出现差距,因为您的导航 Controller 在层次结构中的位置比预期的要低。

关于uiview - 导航后如何移动某些UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com