ric*_*h.e 3 iphone background uinavigationcontroller
并提前感谢.
我正在寻找有关如何在我的应用程序中布局视图控制器的建议,我仍然有一个持久的背景和一些背景动画
这是它目前的设置方式:
在代码中:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
`
Sprite Layer一直在后台可见,包含不同的动画.问题是,现在我正在尝试实现autorisizing并遇到困难,因为sprite层中的视图不在UIViewController中.
我认为一种可能性是使SpriteLayer子类为UIViewController,但不要将它放在导航控制器中; 它只会存在于导航控制器正在显示的任何视图后面.我不知道是否同时拥有2个视图控制器,这将是错误的来源或只是糟糕的设计,因为我已经在StackOverflow上读到这不是视图控制器的预期设计.
有什么意见吗?
干杯,里奇
PS我在代码块中放置一个客观的C方法时遇到问题.后面的勾号似乎不起作用,因为代码字体中唯一的代码部分是缩进的.有人知道这样做的正确方法吗?再次感谢.
Bentford,我没想过将SpriteLayer视图直接添加到UINavigation视图中,因为我认为这不是UINavigation的预期用途.但它就像一个魅力:)
我不得不改变的是:
[window addSubview:backgroundView];
[window addSubview:self.spriteLayer];
[window addSubview:self.navigationController.view];
Run Code Online (Sandbox Code Playgroud)
至:
[self.navigationController.view insertSubview:backgroundView atIndex:0];
[self.navigationController.view insertSubview:self.spriteLayer atIndex:1];
[window addSubview:self.navigationController.view];
Run Code Online (Sandbox Code Playgroud)
然后添加一些autoresizeMask到backgroundView和poof我有一个自动调整背景+精灵,当视图控制器被推入导航堆栈时没有git刷出.
谢谢你的建议!
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |