gpt4 book ai didi

iphone - 在导航 Controller 中的所有 View 后面保持 View 持久的最佳方法

转载 作者:行者123 更新时间:2023-12-03 19:40:23 25 4
gpt4 key购买 nike

提前致谢。

我正在寻找有关如何在我的应用程序中布局 View Controller 的建议,我仍然有一个持久的背景和一些背景动画

这是当前的设置方式:

  • AppDelegate 制作导航 Controller 、RootViewController 和 Sprite Layer(UIView 的子类)
  • AppDelegate 还保存背景图像作为其 backgroundColor 属性
  • 导航 Controller 像平常一样用 Root View Controller 初始化
  • Root View Controller 将不同的表格 View 推送到导航堆栈

在代码中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

UIImageView* backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"underthesea.jpg"]] autorelease];
backgroundView.contentMode = UIViewContentModeScaleAspectFill;
backgroundView.frame = [UIScreen mainScreen].bounds;

self.viewController = [[[RootViewController alloc] init] autorelease];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.spriteLayer = [[[SpriteLayer alloc] initWithFrame:self.viewController.view.frame] autorelease];
self.viewController.spriteLayer = self.spriteLayer;

[window addSubview:backgroundView];
[window addSubview:self.spriteLayer];
[window addSubview:self.navigationController.view];

[window makeKeyAndVisible];
return YES;
}

`

Sprite Layer 始终在背景中可见,包含不同的动画。问题是,现在我正在尝试实现自动调整,但遇到困难,因为 Sprite 层中的 View 不在 UIViewController 内。

我认为一种可能性是使 SpriteLayer 成为 UIViewController 的子类,但不要将其放在导航 Controller 中;它只会存在于导航 Controller 显示的任何 View 后面。我不知道像这样同时拥有 2 个 View Controller 是否会导致错误或只是糟糕的设计,因为我在 StackOverflow 上读到这不是 View Controller 的预期设计。

这里有什么意见吗?

干杯,丰富

附注我无法将 objective-c 方法放入代码块中。后面的勾号似乎不起作用,因为代码中唯一以代码字体结尾的部分是缩进的部分。有人知道执行此操作的正确方法吗?再次感谢。

最佳答案

Bentford,我没有想到将 SpriteLayer View 直接添加到 UINavigation View 中,因为我认为这不是 UINavigation 的预期用途。但它的作用就像一个魅力:)

我需要改变的是:

[window addSubview:backgroundView];    
[window addSubview:self.spriteLayer];
[window addSubview:self.navigationController.view];

至:

[self.navigationController.view insertSubview:backgroundView atIndex:0];
[self.navigationController.view insertSubview:self.spriteLayer atIndex:1];
[window addSubview:self.navigationController.view];

然后向backgroundView添加一点autoresizeMask,然后我有一个自动调整大小的背景+ Sprite ,当 View Controller 被推到导航堆栈上时,它不会被git刷出。

感谢您的建议!

关于iphone - 在导航 Controller 中的所有 View 后面保持 View 持久的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175902/

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