无法更改UIWindow的大小

时间:2011-11-14 23:40:28

标签: iphone ios cocoa-touch uiwindow

我正在尝试在iPad应用程序的基础上添加一个新窗口,但我无法弄清楚为什么它总是呈现为全屏。 我正在使用此代码:

UIWindow *window = [[UIWindow alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];


[window setFrame:CGRectMake(0, 0, 20, 20)];
ArrowController *controller = [[ArrowController alloc]initWithNibName:@"ArrowController" bundle:nil];   

[window setRootViewController:controller];    
[window setHidden:NO];

[controller release];

无论我在框架上放置什么尺寸,我都会看到一个全屏尺寸的窗口。 请指教,谢谢。

2 个答案:

答案 0 :(得分:12)

要更改您添加的另一个UIWindow的框架,您必须使用所需的框架初始化窗口:

self.myNewWindow = [[UIWindow alloc] initWithFrame:CGRectMake(10, 10+20, 300, 440)];

将其属性剪辑设置为活动边界:

[self.myNewWindow setClipsToBounds:YES];

然后在将rootViewController设置为新窗口后,也设置其框架:

self.myNewWindow.rootViewController = self.fooViewController;
[self.myNewWindow makeKeyAndVisible];

self.fooViewController.view.frame = CGRectMake(0, 0, 300, 440);

这适用于iPhone和iPad。

答案 1 :(得分:-17)

iOS应用只应该有一个UIWindow对象。

你可能应该在viewController的UIView上设置框架,并将其添加为子视图。